国产成人AV无码一二三区,少女1到100集,国产精品久久久久精品综合紧,巜公妇之诱感肉欲HD在线播放

文章 > 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()


关注

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

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

机械师曙光| 《借种生子》电影免费观看| 乳首やほっちやんねん的读音| 欲奴性猛交2无删减| 《互换人妻HD中字》| EXO妈妈MV高清免费观看 | 怎么才能怀孕?| 波多野结衣| 《女仆教育》动漫第一季| 公翁挺进小玲的小沉| 把老婆闺蜜干了俩次| 无人区免费观看高清电视剧| 我在做饭他在下添好爽好硬| 明明说好的只蹭蹭苦苦恳求歌词 | 母与子免费观看大全电视剧| 《请好好疼爱里面》免费观看| 把老婆闺蜜干了俩次| MD传媒破解版APP免费版| 来吧儿子妈妈是纯还是混| 林语惊| 狗配人的大片视频大全| 《列车上的轮杆》1-4| 禁忌1蜜桃熟了| 凯登·克罗斯| 法国色情巜宝贝宝贝3| 孝子提枪入母门| 亚洲AV成人片无码WWW| 精品一区| 国产-区二区| 美国性伦1980禁忌禁忌| 美女跳舞| 明明说好的只蹭蹭苦苦恳求歌词| 扒开腿让我躁你很舒服的导演是谁 | 坤坤寒进桃子里在线看歌词| 《瞒着丈夫说在公司加班》中字 | 做到你合不拢腿为止| 影音先锋下载| 欧洲最强女RAPPER免费| 18岁免费观看高清电视剧推荐 | 《不戴套瑜伽教练3》| 人野兽马狗猪大全