用二分查找法和堆栈的方式,完成三级菜单查询。

Posted hisweety

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用二分查找法和堆栈的方式,完成三级菜单查询。相关的知识,希望对你有一定的参考价值。

 

Menu:

menu = {
    北京: {
        海淀: {
            五道口: {
                soho: {},
                网易: {},
                google: {}
            },
            中关村: {
                爱奇艺: {},
                汽车之家: {},
                youku: {},
            },
            上地: {
                百度: {},
            },
        },
        昌平: {
            沙河: {
                老男孩: {},
                北航: {},
            },
            天通苑: {},
            回龙观: {},
        },
        朝阳: {},
        东城: {},
    },
    上海: {
        闵行: {
            "人民广场": {
                炸鸡店: {}
            }
        },
        闸北: {
            火车战: {
                携程: {}
            }
        },
        浦东: {},
    },
    山东: {},
}

堆栈:

l=[menu]
while True:
    for key in l[-1]:print(key)
    k=input(input>>>).strip()
    if k in l[-1].keys() and l[-1][k]:
        l.append(l[-1][k])
    if k==b:l.pop()
    if k==q:break
    else:continue

递归函数

def threeLM(dic):
    while True:
        for k in dic:print(k)
        key = input(input>>).strip()
        if key == b or key == q:return key
        elif key in dic.keys() and dic[key]:
            ret = threeLM(dic[key])
            if ret == q: return q

threeLM(menu)

递归函数实现三级菜单

 

以上是关于用二分查找法和堆栈的方式,完成三级菜单查询。的主要内容,如果未能解决你的问题,请参考以下文章

二分查找法和牛顿法求根号的实现

python的冒泡法和二分法的总结

二分查找算法(加法方式:斐波那契查找)

实现 sqrt(x):二分查找法和牛顿法

Python 基础 - Day 1 Assignment - Three tier menu 三级菜单

TreeUtils工具类一行代码实现列表转树 实战Java8 三级菜单 三级分类 附视频