python3 deque(双向队列)

创建双向队列

import collections
d = collections.deque()

基本用法:

import collections
d = collections.deque()

d.append(1)
d.appendleft(2)
d.extend([3,4,5])
d.extendleft([3,4,5])
new_d = d.copy()
d.extend(['a','b','c','d','e'])
d.rotate(2)   #指定次数,默认1次
d.clear()
#清空所有

python的queue的实现三种类型的队列。

FIFO先进先出,同数据结构的队列

import queue
import time
q = queue.Queue()
q.put(2)
q.put(1)
q.put(3)
while not q.empty():
    next_item = q.get()
    print(next_item)

LIFO,后进先出。同数据结构的栈

import queue
q = queue.LifoQueue()
q.put(2)
q.put(1)
q.put(3)
while not q.empty():
    next_item = q.get()
    print(next_item)

PQ优先队列

它一般通过堆这一数据结构,而堆其实是一种完全二叉树,它会对进入容器的元素进行排序(根据事先指定的规则),出队的顺序则会是二叉树的根结点代表的元素。

from queue import PriorityQueue
q = PriorityQueue()
q.put((2, 'code'))
q.put((1, 'eat'))
q.put((3, 'sleep'))
while not q.empty():
    next_item = q.get()
    print(next_item)

 

 

 

 

参考链接:https://www.cnblogs.com/MY0213/p/8997461.html

 

posted on 2020-06-18 13:09  topass123  阅读(553)  评论(0编辑  收藏  举报