首页 > 其他 > 详细

栈,队列的应用

时间:2019-03-26 18:33:54      阅读:125      评论:0      收藏:0      [点我收藏+]

栈  

1.计算文件的大小

# def get_size(path):
#     sum = 0
#     l = [path]
#     while l :
#         path = l.pop()
#         lis = os.listdir(path)
#         for name in lis:
#             son_path = os.path.join(path,name)
#             if os.path.isfile(son_path):
#                 sum+=os.path.getsize(son_path)
#             else:
#                 l.append(son_path)
#     return sum
# result = get_size(path)
# print(result)

 

技术分享图片
 1 def get_size(path):
 2     sum = 0
 3     l = [path]
 4     while l :
 5         path = l.pop()
 6         lis = os.listdir(path)
 7         for name in lis:
 8             son_path = os.path.join(path,name)
 9             if os.path.isfile(son_path):
10                 sum+=os.path.getsize(son_path)
11             else:
12                 l.append(son_path)
13     return sum
14 result = get_size(path)
15 print(result)
View Code

2.三级菜单

技术分享图片
 1 menu = {
 2     北京: {
 3         海淀: {
 4             五道口: {
 5                 soho: {},
 6                 网易: {},
 7                 google: {}
 8             },
 9             中关村: {
10                 爱奇艺: {},
11                 汽车之家: {},
12                 youku: {},
13             },
14             上地: {
15                 百度: {},
16             },
17         },
18         昌平: {
19             沙河: {
20                 老男孩: {},
21                 北航: {},
22             },
23             天通苑: {},
24             回龙观: {},
25         },
26         朝阳: {},
27         东城: {},
28     },
29     上海: {
30         闵行: {
31             "人民广场": {
32                 炸鸡店: {}
33             }
34         },
35         闸北: {
36             火车战: {
37                 携程: {}
38             }
39         },
40         浦东: {},
41     },
42     山东: {},
43 }
44 
45 li = [menu]
46 while 1:
47     for key in li[-1]
48         print(key)
49     k = input(<<<)
50     if k in li[-1]:
51         li.append(li[-1][k])
52     elif k.upper() == B
53         li.pop
54     elif k.upper() == Q
55         break
View Code
menu = {
    北京: {
        海淀: {
            五道口: {
                soho: {},
                网易: {},
                google: {}
            },
            中关村: {
                爱奇艺: {},
                汽车之家: {},
                youku: {},
            },
            上地: {
                百度: {},
            },
        },
        昌平: {
            沙河: {
                老男孩: {},
                北航: {},
            },
            天通苑: {},
            回龙观: {},
        },
        朝阳: {},
        东城: {},
    },
    上海: {
        闵行: {
            "人民广场": {
                炸鸡店: {}
            }
        },
        闸北: {
            火车战: {
                携程: {}
            }
        },
        浦东: {},
    },
    山东: {},
}

li = [menu]
while li:  # 这个是以li为条件,而不是1  因为和下面的 Q 有关联
    for key in li[-1]:
        print(key)
    k = input(<<<)  #k是输入
    if k in li[-1]:  
        li.append(li[-1][k])
    elif k.upper() == Q:  #  Q
        li.clear() #清空了字典,所以再次循环判断的时候就为空 就自动退出 不再循环
    elif k.upper() == B:
        li.pop()

 

 

栈,队列的应用

原文:https://www.cnblogs.com/CNHK1949/p/10602101.html

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