• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

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

python 搞代码 4年前 (2022-01-09) 21次浏览 已收录 0个评论

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 数据类型对本文来源gao@!dai!ma.com搞$$代^@码!网!象的 容器 和 可变 等特性, 表现在 List.append() 和 List.pop() 这两个列表类型内建函数的调用.

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

更多Python 数据结构之堆栈实例代码相关文章请关注搞代码


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:Python 数据结构之堆栈实例代码

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址