首页 > 技术文章 > 数据结构初识(三级菜单)

Xiao_Xu 2019-03-26 19:12 原文

常见的数据结构:

    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])

 

推荐阅读