博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
三级菜单
阅读量:4315 次
发布时间:2019-06-06

本文共 2519 字,大约阅读时间需要 8 分钟。

1.用递归的方法实现

dic = {    '北京': {        '东城':            {                '沙河': {                    '链家':{},                    '安居客':{
'三里屯'} }, '天通苑': {
'北方明珠', '天通尾货'} }, '朝阳': { '花家地': {
'朝阳公园', '望京soho'}, '北小河': {
'北小河公园', '北京中学'} } }, '上海': { '虹桥': { '虹桥机场': ['超市', '特产店', '水吧'], '东方明珠': ['电影院', '游泳馆', '餐馆'] }, '浦东': { '景秀路': ['世纪公园', '立交桥'], '中环路': ['鲁迅公园', '同济大学'] } }, '河北': { '石家庄': { '行唐': ['东正', '阳关'], '赵县': ['赵州桥', '高村乡'] }, '唐山': { '滦南县': ['司各庄镇', '安各庄镇'], '玉田县': ['玉田镇', '亮甲店镇'] } }}#递归的方法实现def sanjicaidan(dic): while True: for k in dic: print(k) key = input('input>>>>') if key == 'b' or key == 'q': return key elif key in dic.keys() and dic[key]: ret = sanjicaidan(dic[key]) #递归调用 if ret == 'q': return 'q'sanjicaidan(dic)

2.用堆栈的方式实现

dic = {    '北京': {        '东城':            {                '沙河': {                    '链家':{},                    '安居客':{
'三里屯'} }, '天通苑': {
'北方明珠', '天通尾货'} }, '朝阳': { '花家地': {
'朝阳公园', '望京soho'}, '北小河': {
'北小河公园', '北京中学'} } }, '上海': { '虹桥': { '虹桥机场': ['超市', '特产店', '水吧'], '东方明珠': ['电影院', '游泳馆', '餐馆'] }, '浦东': { '景秀路': ['世纪公园', '立交桥'], '中环路': ['鲁迅公园', '同济大学'] } }, '河北': { '石家庄': { '行唐': ['东正', '阳关'], '赵县': ['赵州桥', '高村乡'] }, '唐山': { '滦南县': ['司各庄镇', '安各庄镇'], '玉田县': ['玉田镇', '亮甲店镇'] } }}l=[dic]while l: for key in l[-1]: #l[-1]就是dic print(key) k = input('input>>>').strip() #如果输入的k在dic中且k还有值,那么就执行下面 if k in l[-1].keys() and l[-1][k]: l.append(l[-1][k]) #当输入北京时,l[-1][k]就相当于{'东城':{...},'朝阳':{...}} #l.append执行后l就是l=[dic,{'东城':{...},'朝阳':{...}}] elif k == 'b': l.pop() #输入b时就把{'东城':{...},'朝阳':{...}}pop出去 elif k == 'q': break

 

转载于:https://www.cnblogs.com/wm0217/p/10880222.html

你可能感兴趣的文章
0007_初始模块和字节码
查看>>
[效率提升]如何管理好你的电脑文件
查看>>
C++实验二
查看>>
使用case语句给字体改变颜色
查看>>
JAVA基础-多线程
查看>>
面试题5:字符串替换空格
查看>>
JSP九大内置对象及四个作用域
查看>>
ConnectionString 属性尚未初始化
查看>>
MySQL基本命令和常用数据库对象
查看>>
poj 1222 EXTENDED LIGHTS OUT(位运算+枚举)
查看>>
进程和线程概念及原理
查看>>
Lucene、ES好文章
查看>>
android 生命周期
查看>>
jquery--this
查看>>
MySQL 5.1参考手册
查看>>
TensorFlow安装流程(GPU加速)
查看>>
OpenStack的容器服务体验
查看>>
BZOJ 1066 蜥蜴(网络流)
查看>>
提高批量插入数据的方法
查看>>
Linux重启Mysql命令
查看>>