全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

Python 数据结构之堆栈实例代码

Python 堆栈

堆栈是一个后进先出(LIFO)的数据结构. 堆栈这个数据结构可以用于处理大部分具有后进先出的特性的程序流 .
在堆栈中, push 和 pop 是常用术语:

  • push: 意思是把一个对象入栈.
  • pop: 意思是把一个对象出栈.

下面是一个由 Python 实现的简单的堆栈结构:

stack = []         # 初始化一个列表数据类型对象, 作为一个栈

def pushit():       # 定义一个入栈方法
  stack.append(raw_input('Enter New String: ').strip())   
  # 提示输入一个入栈的 String 对象, 调用 Str.strip() 保证输入的 String 值不包含多余的空格

def popit():        # 定义一个出栈方法
  if len(stack) == 0:
    print "Cannot pop from an empty stack!"
  else:
    print 'Remove [', `stack.pop()`, ']'
    # 使用反单引号(` `)来代替 repr(), 把 String 的值用引号扩起来, 而不仅显示 String 的值

def viewstack():      # 定义一个显示堆栈中的内容的方法
    print stack

CMDs = {'u':pushit, 'o':popit, 'v':viewstack}
# 定义一个 Dict 类型对象, 将字符映射到相应的 function .可以通过输入字符来执行相应的操作

def showmenu():      # 定义一个操作菜单提示方法
  pr = """
  p(U)sh
  p(O)p
  (V)iew
  (Q)uit

  Enter choice: """

  while True:
    while True:
      try:
        choice = raw_input(pr).strip()[0].lower()
        # Str.strip() 去除 String 对象前后的多余空格
        # Str.lower() 将多有输入转化为小写, 便于后期的统一判断
        # 输入 ^D(EOF, 产生一个 EOFError 异常)
        # 输入 ^C(中断退出, 产生一个 keyboardInterrupt 异常)

      except (EOFError, KeyboardInterrupt, IndexError):
        choice = 'q'

      print '\nYou picked: [%s]' % choice

      if choice not in 'uovq':
        print 'Invalid option, try again'
      else:
        break


    if choice == 'q':
      break
    CMDs[choice]()
    # 获取 Dict 中字符对应的 functionName, 实现函数调用

if __name__ == '__main__':
  showmenu()

NOTE: 在堆栈数据结构中, 主要应用了 List 数据类型对象的 容器 和 可变 等特性, 表现在 List.append() 和 List.pop() 这两个列表类型内建函数的调用.

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!


# Python  # 堆栈  # 堆栈数据结构的实现  # 数据结构  # 堆和栈  # python实现堆栈与队列的方法  # Python基于列表模拟堆栈和队列功能示例  # Python 实现数据结构-堆栈和队列的操作方法  # python实现异常信息堆栈输出到日志文件  # Python捕获异常堆栈信息的几种方法(小结)  # Python实现自定义异常堆栈信息的示例代码  # Python堆栈的具体使用  # 是一个  # 这两个  # 可以通过  # 用了  # 希望能  # 作为一个  # 谢谢大家  # 转化为  # 内建  # 不包含  # 后期  # 单引号  # 来代替  # strip  # Str  # raw_input  # Enter  # String 


相关文章: 建站主机默认首页配置指南:核心功能与访问路径优化  如何用花生壳三步快速搭建专属网站?  详解免费开源的DotNet二维码操作组件ThoughtWorks.QRCode(.NET组件介绍之四)  C#如何在一个XML文件中查找并替换文本内容  简单实现Android文件上传  如何使用Golang安装API文档生成工具_快速生成接口文档  网站插件制作软件免费下载,网页视频怎么下到本地插件?  道歉网站制作流程,世纪佳缘致歉小吴事件,相亲网站身份信息伪造该如何稽查?  如何在Golang中处理模块冲突_解决依赖版本不兼容问题  文字头像制作网站推荐软件,醒图能自动配文字吗?  如何在Mac上搭建Golang开发环境_使用Homebrew安装和管理Go版本  金*站制作公司有哪些,金华教育集团官网?  网站建设制作、微信公众号,公明人民医院怎么在网上预约?  广州建站公司哪家好?十大优质服务商推荐  手机钓鱼网站怎么制作视频,怎样拦截钓鱼网站。怎么办?  公司门户网站制作公司有哪些,怎样使用wordpress制作一个企业网站?  建站之星五站合一营销型网站搭建攻略,流量入口全覆盖优化指南  行程制作网站有哪些,第三方机票电子行程单怎么开?  香港服务器建站指南:免备案优势与SEO优化技巧全解析  定制建站如何定义?其核心优势是什么?  香港服务器WordPress建站指南:SEO优化与高效部署策略  Avalonia如何实现跨窗口通信 Avalonia窗口间数据传递  义乌企业网站制作公司,请问义乌比较好的批发小商品的网站是什么?  如何在阿里云域名上完成建站全流程?  如何通过西部建站助手安装IIS服务器?  c++怎么使用类型萃取type_traits_c++ 模板元编程类型判断【方法】  网站制作中优化长尾关键字挖掘的技巧,建一个视频网站需要多少钱?  头像制作网站在线观看,除了站酷,还有哪些比较好的设计网站?  太平洋网站制作公司,网络用语太平洋是什么意思?  如何选择香港主机高效搭建外贸独立站?  制作表格网站有哪些,线上表格怎么弄?  如何通过FTP空间快速搭建安全高效网站?  官网网站制作腾讯审核要多久,联想路由器newifi官网  沈阳制作网站公司排名,沈阳装饰协会官方网站?  制作网站的网址是什么,请问后缀为.com和.com.cn还有.cn的这三种网站是分别是什么类型的网站?  建站主机功能解析:服务器选择与快速搭建指南  建站之星在线版空间:自助建站+智能模板一键生成方案  如何在万网开始建站?分步指南解析  c++ stringstream用法详解_c++字符串与数字转换利器  定制建站价位费用解析与套餐推荐全攻略  胶州企业网站制作公司,青岛石头网络科技有限公司怎么样?  实现点击下箭头变上箭头来回切换的两种方法【推荐】  大型企业网站制作流程,做网站需要注册公司吗?  如何在Golang中实现微服务服务拆分_Golang微服务拆分与接口管理方法  济南网站建设制作公司,室内设计网站一般都有哪些功能?  建站之星导航如何优化提升用户体验?  巅云智能建站系统:可视化拖拽+多端适配+免费模板一键生成  韩国网站服务器搭建指南:VPS选购、域名解析与DNS配置推荐  简单实现Android验证码  Java解压缩zip - 解压缩多个文件或文件夹实例 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。