- Python算法详解
- 张玲玲
- 634字
- 2020-06-27 17:50:52
4.3.3 实践演练——完整的顺序队列的操作
下面的实例文件duilie.py演示了实现4种常见队列操作的过程。
源码路径:daima\第4章\duilie.py
from queue import Queue #LILO队列 q = Queue() #创建队列对象 q.put(0) #在队列尾部插入元素 q.put(1) q.put(2) print('LILO队列',q.queue) #查看队列中的所有元素 print(q.get()) #返回并删除队列头部元素 print(q.queue) from queue import LifoQueue #LIFO队列 lifoQueue = LifoQueue() lifoQueue.put(1) lifoQueue.put(2) lifoQueue.put(3) print('LIFO队列',lifoQueue.queue) lifoQueue.get() #返回并删除队列尾部元素 lifoQueue.get() print(lifoQueue.queue) from queue import PriorityQueue #优先队列 priorityQueue = PriorityQueue() #创建优先队列对象 priorityQueue.put(3) #插入元素 priorityQueue.put(78) #插入元素 priorityQueue.put(100) #插入元素 print(priorityQueue.queue) #查看优先级队列中的所有元素 priorityQueue.put(1) #插入元素 priorityQueue.put(2) #插入元素 print('优先级队列:',priorityQueue.queue) #查看优先级队列中的所有元素 priorityQueue.get() #返回并删除优先级最低的元素 print('删除后剩余元素',priorityQueue.queue) priorityQueue.get() #返回并删除优先级最低的元素 print('删除后剩余元素',priorityQueue.queue) #删除后剩余元素 priorityQueue.get() #返回并删除优先级最低的元素 print('删除后剩余元素',priorityQueue.queue) #删除后剩余元素 priorityQueue.get() #返回并删除优先级最低的元素 print('删除后剩余元素',priorityQueue.queue) #删除后剩余元素 priorityQueue.get() #返回并删除优先级最低的元素 print('全部被删除后:',priorityQueue.queue) #查看优先级队列中的所有元素 from collections import deque #双端队列 dequeQueue = deque(['Eric','John','Smith']) print(dequeQueue) dequeQueue.append('Tom') #在右侧插入新元素 dequeQueue.appendleft('Terry') #在左侧插入新元素 print(dequeQueue) dequeQueue.rotate(2) #循环右移2次 print('循环右移2次后的队列',dequeQueue) dequeQueue.popleft() #返回并删除队列最左端元素 print('删除最左端元素后的队列:',dequeQueue) dequeQueue.pop() #返回并删除队列最右端元素 print('删除最右端元素后的队列:',dequeQueue)
执行后会输出:
LILO队列deque([0, 1, 2]) 0 deque([1, 2]) LIFO队列[1, 2, 3] [1] [3, 78, 100] 优先级队列: [1, 2, 100, 78, 3] 删除后剩余元素 [2, 3, 100, 78] 删除后剩余元素 [3, 78, 100] 删除后剩余元素 [78, 100] 删除后剩余元素 [100] 全部被删除后: [] deque(['Eric', 'John', 'Smith']) deque(['Terry', 'Eric', 'John', 'Smith', 'Tom']) 循环右移2次后的队列deque(['Smith', 'Tom', 'Terry', 'Eric', 'John']) 删除最左端元素后的队列: deque(['Tom', 'Terry', 'Eric', 'John']) 删除最右端元素后的队列: deque(['Tom', 'Terry', 'Eric'])