栈
栈的概念
- 一种结构体
- 数据先进后出
用列表模拟栈
mystack = [] # 列表
mystack.append(1)
mystack.append(2)
mystack.append(3)
while len(mystack) != 0:
value = mystack.pop()
print(value)
用栈深度遍历一个路径下的文件盒文件夹
队列1
import colections
myqueue = colections.deque([])
队列2
import queue
q1 = queue.Queue(maxsize=0) # maxsize=0默认不限制元素个数
q1.qsize() # 计算队列中数据的数量
q1.empty() # 判断队列是否为空
q1.full() # 判断队列是否已满
q1.get() # 阻塞取出数据,如果没有数据会等待
q1.get_nowait() # 非阻塞取出数据,如果没有数据会报错
q1.put("123") # 阻塞往队列中添加数据,如果数据满了会等待
q1.put_nowait("12") # 非阻塞添加数据,如果数据满了会报错
q1.join()
q1.task_done()
介绍
- 参数中block是阻塞的意思
- 参数中timeout是等待超时的意思
队列3
import queue
q1 = queue.PriorityQueue(maxsize=0) # maxsize=0默认不限制元素个数
q1.put((1,"fdsg"))
q1.put((3,"fdsfg"))
q1.put((2,"ffdsg"))
介绍
- PriorityQueue队列默认按照第一个元素排序
- 注意必须同一类型