双端队列(Deque,全称:Double-ended Queue)

简介: 双端队列(Deque,全称:Double-ended Queue)是一种线性数据结构,它允许在队列的两端进行插入和删除操作。与普通队列(只能在尾部插入,在头部删除)和栈(只能在尾部插入,在头部删除)不同,双端队列可以在两端进行插入和删除操作。

双端队列(Deque,全称:Double-ended Queue)是一种线性数据结构,它允许在队列的两端进行插入和删除操作。与普通队列(只能在尾部插入,在头部删除)和栈(只能在尾部插入,在头部删除)不同,双端队列可以在两端进行插入和删除操作。
双端队列的常用操作包括:

  1. addFirst(E e):在双端队列的头部插入元素
  2. addLast(E e):在双端队列的尾部插入元素
  3. removeFirst():移除并返回双端队列的头部元素
  4. removeLast():移除并返回双端队列的尾部元素
  5. getFirst():获取但不移除双端队列的头部元素
  6. getLast():获取但不移除双端队列的尾部元素
  7. isEmpty():判断双端队列是否为空
  8. size():返回双端队列中的元素数量
    使用双端队列的场景:
  9. 需要频繁地在队列的两端进行插入和删除操作。
  10. 需要根据队列头部的元素进行某些操作,例如排序、查找等。
    推荐 Demo:
    下面是一个使用 Python 实现的双端队列的简单示例:

from collections import deque

创建一个双端队列

dq = deque(["A", "B", "C"])

在双端队列的头部插入元素

dq.addFirst("Z")

在双端队列的尾部插入元素

dq.addLast("Y")

获取双端队列的头部元素

print(dq.getFirst()) # 输出:Z

获取双端队列的尾部元素

print(dq.getLast()) # 输出:Y

移除并返回双端队列的头部元素

print(dq.removeFirst()) # 输出:Z

移除并返回双端队列的尾部元素

print(dq.removeLast()) # 输出:Y

判断双端队列是否为空

print(dq.isEmpty()) # 输出:False

返回双端队列中的元素数量

print(dq.size()) # 输出:3
CopyCopy

在这个示例中,我们创建了一个双端队列,并在队列的两端插入和删除了一些元素。最后,我们使用了双端队列的一些方法来获取队列中的元素、判断队列是否为空以及获取队列的长度。

目录
相关文章
|
8月前
|
Python
双端优先级队列(Double-Ended Priority Queue
双端优先级队列(Double-Ended Priority Queue)是一种支持在两端进行插入和删除操作的优先级队列。它可以在 O(log n) 的时间复杂度内完成插入、删除、查询操作。双端优先级队列可以使用二叉堆或线段树等数据结构实现。
165 6
|
2月前
Queue和deque用法
Queue和deque用法
16 0
|
2月前
|
存储 算法 C++
C++:stack、queue、priority_queue增删查改模拟实现、deque底层原理
C++:stack、queue、priority_queue增删查改模拟实现、deque底层原理
41 0
|
2月前
|
编译器 C++ 容器
STL常用之vector,list,stack,queue,deque总结与对比
STL常用之vector,list,stack,queue,deque总结与对比
|
11月前
|
存储 算法 C++
C++ STL priority_queue
优先队列是一种容器适配器,根据严格的弱排序标准,它的第一个元素总是它所包含的元素中最大的。
|
8月前
|
设计模式 存储 C++
C++ Stack&queue&deque
C++ Stack&queue&deque
|
9月前
|
存储 算法 程序员
stack、queue、priority_queue的使用和简单实现【STL】
stack、queue、priority_queue的使用和简单实现【STL】
40 0
|
9月前
|
存储 算法 C++
『C++ - STL』之优先级队列( priority_queue )
『C++ - STL』之优先级队列( priority_queue )
|
算法 容器
stack_queue | priority_queue | 仿函数
stack_queue | priority_queue | 仿函数
85 0
|
存储 设计模式 算法
【STL】stack、queue、priority_queue模拟实现
一. deque简单介绍 1.1 deque的功能介绍 deque(双端队列

热门文章

最新文章