1. 程式人生 > >用二分查找法和堆棧的方式,完成三級菜單查詢。

用二分查找法和堆棧的方式,完成三級菜單查詢。

app reel 汽車之家 nbsp else 中關村 二分 code 遞歸

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)

遞歸函數實現三級菜單

用二分查找法和堆棧的方式,完成三級菜單查詢。