栈和队列都是一种特殊的线性表,你也可以理解为一种存储单元,用于存储逻辑关系为一对一的数据。使用栈结构存储数据,讲究先进后出,意思是如果一组数据一次存入栈中,当取数据的时候,最先进去的最后出来。使用队列存储数据的时候正好和栈相反——先进先出。使用递归、栈、队列这种数据结构可以纵深遍历目录,或者纵深爬虫开发。
一、栈
栈结构类似于列表中的append()和pop()操作方式。
1.压栈
list1 = []
# 1.压栈
list1.append('A')
print(list1)
list1.append('B')
print(list1)
list1.append('C')
print(list1)
返回结果:
['A']
['A', 'B']
['A', 'B', 'C']
2.出栈
# 2.出栈
res1 = list1.pop()
print(res1)
print(list1)
res2 = list1.pop()
print(res2)
print(list1)
res3 = list1.pop()
print(res3)
print(list1)
返回结果:
C
['A', 'B']
B
['A']
A
[]
二、队列
队列讲究先进先出。需要借助于collections模块来操作。
1.入队
import collections
# 创建一个队列
queue = collections.deque()
print(queue)
# 1.入队
queue.append('A')
print(list1)
queue.append('B')
print(list1)
queue.append('C')
print(list1)
2.出队
res1 = queue.popleft()
print(res1)
print(list1)
res2 = queue.popleft()
print(res2)
print(list1)
res3 = queue.popleft()
print(res3)
print(list1)