数据结构初识(三级菜单)

常见的数据结构:

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

 

转载于:https://www.cnblogs.com/Xiao_Xu/p/10602749.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值