国产成人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()


关注

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

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

快拨出我是你老师最火的一句| 苍老师最经典10部电影| 老公把舌头放进我B里搅拌| 局长把我奶头掏出来直接吃| 小莹的性荡生活第15章| 亲吻哼哼唧唧原声不带歌| 日韩大片PPT免费PPT| 少女哔哩哔哩免费高清观看2| 55岁女人高潮后几天能恢复| 《丰满的女邻居》播放| 雨中小故事动态图| 中国记协| 天美传奇星空MV高清免费| 小视频| 杨思敏电影| 成品PPT网站大片入口| 扒开女人内裤猛进猛出流出白液 | CSGO暴躁妹妹高清| 《女仆教育》动漫第一季| 妻子的姐姐免费观看大全电视剧 | 嫂嫂让小叔子帮忙生孩子视频| 三男一女吃奶添下面 | 欧美精品| 下面的小嘴又饿了| 性的快乐| 顶到里面了~疼| 国外成品网站1688入口在哪| 成全视频高清免费观看捉妖记动漫| 内衣秀| 麻豆 无码 国产在线观看| 《黏糊糊的你》免费观看 | 蜜桃成熟2| 《喂奶人妻厨房HD》| 狗配人的大片视频大全| 自述吃了春晚药后有多疯狂| 韩国禁欲系高级感电影| | 国内免费LOGO网站| 王叔 我老公还在客厅| 医院玩弄人妻1~12章| 乱亲女小莹的