"""
Python队列:FIFO:先入先出 管道机制
类别:队列,双端队列:可以任意位置进,任意位置出
Python表示方法:1. List.append(), pop(0):队列 一般不用,因为要移动整个数组,速度慢
2. deque:双端队列 insert, delete速度快 推荐使用
from collections import deque
q = deque([1, 2, 3]
常用操作:append():尾部添加, pop():尾部删除, appendleft():头部添加 popleft():头部删除
搭配使用:append(), popleft()和appendleft(), pop() 实现FIFO
常用操作:append(),pop(),appendleft(),popleft(),max(),min(),len()
应用场景:BFS:广度优先搜索
"""
import queue
from collections import deque
# 1. 创建队列(双端队列)
queue = deque()
# 2. 添加元素
# 0(1)
queue.append(1)
queue.append(2)
queue.append(3)
print(queue)
# 3. 获取即将出队的元素
# 0(1)
temp1 = queue[0]
print(temp1)
# 4. 删除即将出队的元素
# 0(1)
temp2 = queue.popleft()
print(temp2)
print(queue)
# 5. 判断队列是否为空
# 0(1)
print(len(queue) == 0)
# 6. 遍历队列 # 边删除边打印/使用
# 0(n)
while len(queue) != 0:
temp = queue.popleft()
print(temp)
# 7. 其他
q = deque([1, 2, 3])
q.append(4)
print(q)
q.pop()
print(q)
q.appendleft(0)
print(q)
q.popleft()
print(q)
# 8. max()
print(max(q))
# 9. min()
print(min(q))
结果
C:\Users\Administrator\AppData\Local\Programs\Python\Python38\python.exe D:/code/datastruct/caozuo/demo03_queue.py
deque([1, 2, 3])
1
1
deque([2, 3])
False
2
3
deque([1, 2, 3, 4])
deque([1, 2, 3])
deque([0, 1, 2, 3])
deque([1, 2, 3])
3
1
Process finished with exit code 0