zoukankan      html  css  js  c++  java
  • 数据结构初识(三级菜单)

    常见的数据结构:

        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])
  • 相关阅读:
    Java第十三天,内部类
    Java第十二天,权限修饰符
    Java面向对象基础
    opencv配置(win10+VS2015+opencv3.1)
    malloc函数
    C++用new创建对象和不用new创建对象的区别解析
    字符串匹配KMP算法中Next[]数组和Nextval[]数组求法
    C++将一个数组内容赋给另一个数组
    C++中的const和指针组合
    通过图片对比带给你不一样的KMP算法体验
  • 原文地址:https://www.cnblogs.com/Xiao_Xu/p/10602749.html
Copyright © 2011-2022 走看看