队列和栈是两种数据结构,其内部都是按照固定顺序来存放变量的,二者的区别在于对数据的存取顺序
栈是最后存入的数据最先取出,即后进先出
队列是先存入的数据最先取出,即先进先出
Python实现栈
使用append()方法存入数据,使用pop()方法读取数据
# 定义一个空列表(当做栈使用)
stack = []
# 入栈
stack.append("A123")
stack.append("B456")
stack.append("C789")
# 打印当前栈元素
print(stack)
# 出栈
print("第一个出栈:", stack.pop())
print("第二个出栈:", stack.pop())
print("第三个出栈:", stack.pop())
Python实现队列
存入数据时使用insert()方法,设置其第一个参数为0,即表示每次都从最前面插入数据;读取数据时,使用pop()方法,即将队列的最后一个元素弹出
# 定义一个空列表(当做队列使用)
queue = []
# 入队列(向列表中插入元素) queue.insert()
queue.insert(0, "A123")
queue.insert(0, "B456")
queue.insert(0, "C789")
# 查看列表(也就是我们的队列)
print(queue)
# 出队列 queue.pop()
print("第一个出队列:", queue.pop())
print("第二个出队列:", queue.pop())
print("第三个出队列:", queue.pop())
['C789', 'B456', 'A123']
第一个出队列: A123
第二个出队列: B456
第三个出队列: C789
我们也可以使用collections模块中的deque实现队列
from collections import deque
# 空队列
queue = deque()
print(queue) # deque([])
# 入队列
queue.append(1)
queue.append(2)
queue.append(3)
# 查看队列
print(queue) # deque([1, 2, 3])
# 出队列
print("第一个出队列:", queue.popleft()) # 第一个出队列: 1
print(queue) # deque([2, 3])
print("第二个出队列:", queue.popleft()) # 第二个出队列: 2
print(queue) # deque([3])
print("第三个出队列:", queue.popleft()) # 第三个出队列: 3
print(queue) # deque([])