首页 > 其他 > 详细

三级菜单(分别使用递归和堆栈实现)

时间:2019-12-11 23:08:51      阅读:143      评论:0      收藏:0      [点我收藏+]
menu = {
    北京: {
        海淀: {
            五道口: {
                soho: {},
                网易: {},
                google: {}},
            中关村: {
                爱奇艺: {},
                汽车之家: {},
                优酷: {}
            }
        }
    },
    上海: {},
    广东: {
        广州: {
            白云: {
                白云山: {},
                广东外语外贸大学: {}
            },
            番禺: {
                广州大学城: {
                    广东工业大学: {
                        第二食堂: {
                            鸡扒饭
                        },
                        东十三前: {
                            情侣坡
                        }
                    },
                    华南理工大学: {},
                    中山大学: {}
                }
            }
        },
        潮汕: {
            揭阳: {
                揭阳技术师范学院: {},
                揭阳理工学院(在建): {},
            },
            汕头: {
                汕头大学: {}
            }
        }
    }
}

递归方法:

def tri_menu(dic):
    while True:
        for k in dic:
            print(k)
        key = input(请输入地址:).strip()
        if key == b or key == q:
            return key
        elif key in dic.keys() and dic[key]:
            ret = tri_menu(dic[key])
            if ret == q:
                return q


tri_menu(menu)

堆栈方法:

li = [menu]
while li:
    for key in li[-1]:
        print(key)
    k = input(请输入位置:).strip()
    if k in li[-1].keys() and li[-1][k]:
        li.append(li[-1][k])
    elif k == b:
        li.pop()
    elif k == q:
        break
    else:
        continue

三级菜单(分别使用递归和堆栈实现)

原文:https://www.cnblogs.com/xuminzgl/p/12025375.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!