队列和栈两种数据结构的区别和Python实现

本文探讨了队列和栈两种数据结构,强调了它们在数据存取顺序上的不同——栈遵循后进先出(LIFO),而队列遵循先进先出(FIFO)。在Python中,栈可以利用append()和pop()操作,队列则可通过insert()和pop()或collections.deque来实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

队列和栈是两种数据结构,其内部都是按照固定顺序来存放变量的,二者的区别在于对数据的存取顺序

是最后存入的数据最先取出,即后进先出

列是先存入的数据最先取出,即先进先出

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([])
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值