堆和栈

堆和栈其实就是存储和获取数据的一种方式

堆是先进后出,跟在容器里面装东西一样,先进去的会被压在底下,最后放进去的在最上层,所以会先拿出来.
栈是先进先出,就像是一个管道,先进去的在管道的一端,依次排开,取的时候是从另一边开始取,最先进入的会先出来
一般来说,正常的存储获取数据就是堆,而栈则需要定义一个双端列表,就像管道一样

这里写图片描述
一般的操作都是堆的形式

#定义一个num的集合,向里面依次加数据
num = []
num.append(1)
print(num)
num.append(2)
print(num)
num.append(3)
print(num)
num.append(4)
print(num)
num.append(5)
print(num)

#取数据,一个一个的取
re = num.pop()
print(re)
print(num)
re = num.pop()
print(re)
print(num)
[1]
[1, 2]
[1, 2, 3]
[1, 2, 3, 4]
[1, 2, 3, 4, 5]
5
[1, 2, 3, 4]
4
[1, 2, 3]

需要定义一个双端列表,然后在双端列表里添加和取出数据
这里写图片描述

# 导入库
import collections
#定义双端列表
num = collections.deque()
#添加数据
num.append(1)
print(num)
num.append(2)
print(num)
num.append(3)
print(num)
num.append(4)
print(num)

#依次取出数据
re = num.popleft()
print(re)
print(num)
re = num.popleft()
print(re)
print(num)
re = num.popleft()
print(re)
print(num)


deque([1])
deque([1, 2])
deque([1, 2, 3])
deque([1, 2, 3, 4])
1
deque([2, 3, 4])
2
deque([3, 4])
3
deque([4])

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值