韩漫免费漫画在线观看方法,《好好疼爱里面》免费看,年轻漂亮的女士护士内衣,妈妈醉酒后把我当爸爸电视剧

文章 > Python基础教程 > Python能实现栈的结构吗

Python能实现栈的结构吗

头像

Python

2019-06-20 09:42:262998浏览 · 0收藏 · 0评论

栈(stack)又名堆栈,它是一种运算受限的线性表。在Python中可使用列表进行实现。

什么是栈?

栈(stack)又名堆栈,它是一种运算受限的线性表。其限制是仅允许在表的一端进行插入和删除运算。这一端被称为栈顶,相对地,把另一端称为栈底。向一个栈插入新元素又称作进栈、入栈或压栈,它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;从一个栈删除元素又称作出栈或退栈,它是把栈顶元素删除掉,使其相邻的元素成为新的栈顶元素。

如何实现?

在Python中使用列表来实现:

#!/usr/bin/env python 
#定义一个列表来模拟栈 
stack = [] 
#进栈,调用列表的append()函数加到列表的末尾,strip()没有参数是去掉首尾的空格 
def pushit(): 
  stack.append(raw_input('Enter new string: ').strip()) 
#出栈,用到了pop()函数 
def popit(): 
  if len(stack) == 0: 
    print 'Cannot pop from an empty stack!'
  else: 
    print 'Removed [', stack.pop(), ']'
#编历栈 
def viewstack(): 
  print stack 
#CMDs是字典的使用 
CMDs = {'u': pushit, 'o': popit, 'v': viewstack} 
#pr为提示字符 
def showmenu(): 
  pr = """ 
  p(U)sh 
  p(O)p 
  (V)iew 
  (Q)uit 
    Enter choice: """
  while True: 
    while True: 
      try: 
        #先用strip()去掉空格,再把第一个字符转换成小写的 
        choice = raw_input(pr).strip()[0].lower() 
      except (EOFError, KeyboardInterrupt, IndexError): 
        choice = 'q'
      print '\nYou picked: [%s]' % choice 
      if choice not in 'uovq': 
        print 'Invalid option, try again'
      else: 
        break
#CMDs[]根据输入的choice从字典中对应相应的value,比如说输入u,从字典中得到value为pushit,执行pushit()进栈操作 
    if choice == 'q': 
      break
    CMDs[choice]() 
#判断是否是从本文件进入,而不是被调用 
if __name__ == '__main__': 
  showmenu()


关注

关注公众号,随时随地在线学习

本教程部分素材来源于网络,版权问题联系站长!

国产少女免费观看电视剧大全| 二人努力生猴子免费观看| 成全二人世界免费观看电视剧| 女性扒开大腿内侧小肚子痒| 少女第一次免费观看第二集| 图书馆挺进她腿间湿润漫画| 暴躁姐姐BGM国语版| 两男一女一起做运动什么心理| 美女热舞| 17C·MOC官网| 回娘家白天像父女晚上像夫妻 | 人狗大战6免费观看正版| 女性穿裤子阴沟凸起是咋回事| 吃瓜黑料反差黑料爆料董赤赤 | 《我的漂亮老师2》| 李丽珍唯一一部打真军电影| 麻豆 无码 国产在线观看| 美国色情巜做爰4| 下面的小嘴又饿了| 《交换温柔》免费观看全集完整版| 第79章厨房的欢愉方晴| 夫妻二人世界免费看第一集| 色色资源| 美国禁忌2在线观看电视剧| 妹妹的性放荡日记H| 小妈爱上继子免费观看电视剧| 风车动漫网| 戴着小玩具练瑜伽| 被老师摁着强进了好爽H漫画| YY影院免费观看电视剧网站| 《炸裂吧!巨棒》免费阅读漫画| 狗配女人宝典视频| 鲁鲁射击免费播放电视剧全部| 别拔出来 就弄里面吧| 第1章饱满的乳峰喷奶水小说| 《一滴都不许漏》何泽城林荫| 《性呻吟》伦理| DO时不堪入耳的话的| 日本在线观看| BOBO浏览器| BOBO浏览器老司机模式改版特..