📜  德克 |第一套(介绍和应用)

📅  最后修改于: 2022-05-13 01:57:00.890000             🧑  作者: Mango

德克 |第一套(介绍和应用)

Deque或Double Ended Queue是Queue数据结构的通用版本,允许在两端插入和删除。

Deque 上的操作:
主要对队列进行以下四个基本操作:

如果您希望与专家一起参加现场课程,请参阅DSA 现场工作专业课程学生竞争性编程现场课程。

insertFront() :在 Deque 的前面添加一个项目。
insertLast() :在 Deque 的后面添加一个项目。
deleteFront() :从 Deque 前面删除一个项目。
deleteLast() :从 Deque 后面删除一个项目。



除了以上操作,还支持以下操作
getFront() :从队列中获取前项。
getRear() :从队列中获取最后一项。
isEmpty() : 检查 Deque 是否为空。
isFull() : 检查 Deque 是否已满。

Deque的应用:
由于 Deque 同时支持堆栈和队列操作,因此可以同时使用。 Deque 数据结构支持 O(1) 时间内的顺时针和逆时针旋转,这在某些应用程序中很有用。
此外,使用 Deque 可以有效解决需要删除和/或添加两端元素的问题。例如,请参阅所有大小为 k 的子阵列的最大值问题,0-1 BFS 和查找访问所有汽油泵的第一个循环。

有关 A-Steal 作业调度算法的另一个示例,请参阅 wiki 页面,其中 Deque 用作两端都需要删除操作。

语言支持:
C++ STL 提供了作为 std::deque 的 Deque 实现, Java提供了 Deque 接口。有关更多详细信息,请参阅此内容。
Java中的双端队列
Python中的双端队列

执行:
Deque 可以使用双向链表或循环数组来实现。在这两种实现中,我们都可以在 O(1) 时间内实现所有操作。我们很快就会讨论 Deque 数据结构的 C/C++ 实现。