数据结构基础:栈和队列

特性:后进先出

from queue import LifoQueue

lq = LifoQueue(maxsize=0)
#栈写入数据
lq.put(0)
lq.put(1)
lq.put(2)
#删除队尾数据,并返回该数据
lq.get()
#输出队列所有数据
print(lq.queue)
#输出:
# [0, 1, 2]
# [0, 1]

队列

特性:先进后出

from queue import Queue
#maxsize设置队列中,数据上限,小于或等于0则不限制,容器中大于这个数则阻塞,直到队列中的数据被消掉
q = Queue(maxsize=0)

#写入队列数据
q.put(0)
q.put(1)
q.put(2)

#输出当前队列所有数据
print(q.queue)
#删除队列数据,并返回该数据
q.get()
#输也所有队列数据
print(q.queue)

# 输出:
# deque([0, 1, 2])
# deque([1, 2])

优先级队列

优先级越大越早被弹出

# 存储数据时可设置优先级的队列
# 优先级设置数越小等级越高
pq = PriorityQueue(maxsize=0)

#写入队列,设置优先级
pq.put((9,'a'))
pq.put((7,'c'))
pq.put((1,'d'))

#输出队例全部数据
print(pq.queue)

#取队例数据,可以看到,是按优先级取的。
pq.get()
pq.get()
print(pq.queue)

#输出:
[(9, 'a')]

常见题型

leetcode

  • #42 接雨水
  • #85 最大矩形
  • #20 有效的括号
  • #94 二叉树的中序遍历
  • #225 用队列实现栈
  • #739 每日温度
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值