常见的数据结构:
list dict tuple set str
在c语言中 : 数组 链表 结构体
树 堆 栈 队列
树:平衡树 二叉树 红黑树
堆: 最大值堆 最小值堆
# 堆排序
栈 后进先出 LIFO
队列 先进先出 FIFO
import queue #队列 # 先进先出 FIFO q = queue.Queue(3) print(q.qsize()) # 0 print(q.empty()) # True print(q.full()) # False q.put(1) q.put('ancdf') q.put([1,2,3]) # print('已经放了3个') # q.put([1,2,3]) #限制了只能进入三个所以到此停止 # print('已经放了4个') print(q) # <queue.Queue object at 0x000002D088DED828> print(q.get()) # 1 print(q.get()) # ancdf print(q.get()) # [1, 2, 3] print(q.get()) # 阻塞
import queue #栈 后进先出 lifoq = queue.LifoQueue() lifoq.put(1) lifoq.put(2) lifoq.put(3) lifoq.put(4) lifoq.put(5) print(lifoq.get()) print(lifoq.get())
例题:三级菜单:
menu = {'北京': {'海淀': {'五道口': {'soho': {},'网易': {},'google': {}},'中关村': {'爱奇艺': {},'汽车之家': {},'youku': {},},'上地': {'百度': {},},},'昌平': {'沙河': {'老男孩': {},'北航': {},},'天通苑': {},'回龙观': {},},'朝阳': {},'东城': {},},'上海': {'闵行': {"人民广场": {'炸鸡店': {}}},'闸北': {'火车战': {'携程': {}}},'浦东': {},},'山东': {}, } l = [menu] while l:for k in l[-1]:print(k)key = input('>>>')if key.upper() == 'B':l.pop()elif key.upper() == 'Q':l.clear()elif l[-1].get(key):l.append(l[-1][key])