• 技术文章 >后端开发 >Python教程

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

    高洛峰高洛峰2017-02-07 13:02:02原创697
    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 数据结构之堆栈实例代码相关文章请关注PHP中文网!

    php入门到就业线上直播课:查看学习

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。

    前端(VUE)零基础到就业课程:点击学习

    清晰的学习路线+老师随时辅导答疑

    自己动手写 PHP MVC 框架:点击学习

    快速了解MVC架构、了解框架底层运行原理

    专题推荐:Python 堆栈
    上一篇:如何用C语言、Python实现栈及典型应用 下一篇:自己动手写 PHP MVC 框架(40节精讲/巨细/新人进阶必看)

    相关文章推荐

    • ❤️‍🔥共22门课程,总价3725元,会员免费学• ❤️‍🔥接口自动化测试不想写代码?• Python NumPy教程之数据类型对象• 使用Python处理KNN分类算法• Python标准库中的logging用法示例• python发腾讯微博代码分享• python自动化测试实例解析
    1/1

    PHP中文网