用二分查找法和堆棧的方式,完成三級菜單查詢。
阿新 • • 發佈:2019-01-15
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 inl[-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) 遞歸函數實現三級菜單
用二分查找法和堆棧的方式,完成三級菜單查詢。