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


关注

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

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

《厨房激战5》完整版在线观看| MV在线观看免费播放历史| 欧美大片LOGO| 斗破爸穹年番免费高清观看| 优酷网| 曹操| 免费观看已满十八岁电视剧姐弟| 女性扒开大腿内侧小肚子痒 | 年轻的姐妹2| 老公装醉看我和别人在一起 | 《春闺梦里人》在线观看免费| 日本免费SAAS CRM| 电影免费观看高清完整版在线观看| 两阳夹一阴与其他强势形态的比较 | 国产 欧美-区二区三区 | 韩剧在办公室做饭的电影| 免费网站在线观看大全电视剧| 儿子控制不住对妈妈发脾气怎么办 | 国产电影一曲二曲三曲爱妃记豆瓣| 无人区6高清免费追剧软件介绍| 黑科网 今日黑科独家爆料| 小学语文教材| 成色18K1835MB| 窝窝影院在线观看免费播放电视剧 | 进击的巨人| 为爱痴狂| 初中女生光溜溜身子拉屎视频| 把腿扒开让我添30分钟| 一家乱战1-13集大| 《互换人妻HD中字》| 女生穿露胸开又裙穿搭大忌| 主人请好好疼爱里面动画第二季 | 《办公室高潮秘书2》电影影| 年轻的母亲在线观看完整版刘海的..| 美女打屁股| 老公说我的B夹得他很爽| 动浸在线观看完整版影视| 只有一根绳子遮住重要部位| 伦敦战场| 《法国空乘9》| 年轻的嫂子2