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

 更新时间:2017年01月22日 14:43:20   投稿:lqh  
这篇文章主要介绍了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 初始化一个定长的数组实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-12-12
  • Python+OpenCV实现图像识别替换功能详解

    Python+OpenCV实现图像识别替换功能详解

    OpenCV-Python是一个Python库,旨在解决计算机视觉问题。本文将利用Python+OpenCV实现图像识别替换功能,感兴趣的小伙伴可以动手尝试一下
    2022-07-07
  • Python中捕获键盘的方式详解

    Python中捕获键盘的方式详解

    这篇文章主要介绍了Python中捕获键盘的方式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-03-03
  • python如何实现MK突变检验方法,代码复制修改可用

    python如何实现MK突变检验方法,代码复制修改可用

    这篇文章主要介绍了python如何实现MK突变检验方法,代码复制修改可用,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-05-05
  • Python实现爬取亚马逊数据并打印出Excel文件操作示例

    Python实现爬取亚马逊数据并打印出Excel文件操作示例

    这篇文章主要介绍了Python实现爬取亚马逊数据并打印出Excel文件操作,结合实例形式分析了Python针对亚马逊图书数据的爬取操作,以及数据打印输出Excel相关实现技巧,需要的朋友可以参考下
    2019-05-05
  • Pygame显示文字的实现示例

    Pygame显示文字的实现示例

    本文主要介绍了Pygame显示文字的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-02-02
  • Python常用的文件及文件路径、目录操作方法汇总介绍

    Python常用的文件及文件路径、目录操作方法汇总介绍

    这篇文章主要介绍了Python常用的文件及文件路径、目录操作方法汇总介绍,本文集合了最常用的一些文件和目录操作函数,并一一介绍它们的作用,需要的朋友可以参考下
    2015-05-05
  • python中logging包的使用总结

    python中logging包的使用总结

    本篇文章给大家详细讲述了python中logging包的使用的相关知识点以及原理分析,有兴趣的朋友可以参考学习下。
    2018-02-02
  • 教你怎么用python实现字符串转日期

    教你怎么用python实现字符串转日期

    今天教各位小伙伴怎么用python实现字符串转日期,文中有非常详细的代码示例,对正在学习python的小伙伴很有帮助,需要的朋友可以参考下
    2021-05-05
  • Python 实现PS滤镜的旋涡特效

    Python 实现PS滤镜的旋涡特效

    这篇文章主要介绍了Python 实现 PS 滤镜的旋涡特效,帮助大家更好的利用python处理图片,感兴趣的朋友可以了解下
    2020-12-12

最新评论