Python 数据结构_堆栈
来源:互联网 发布:mac系统 盗版软件 编辑:程序博客网 时间:2024/04/27 20:47
目录
- 目录
- 堆栈
堆栈
堆栈是一个后进先出(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 stackCMDs = {'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()
这两个列表类型内建函数的调用.
1 0
- Python 数据结构_堆栈
- 数据结构_堆栈
- Python 数据结构_队列
- 基本数据结构的python实现---堆栈
- python数据结构学习笔记-4-堆栈 队列
- 用Python学习数据结构3--堆栈
- 用python学习数据结构与算法-堆栈
- NYOJ-2 括号配对问题 -- 数据结构_堆栈
- 数据结构:堆栈
- 数据结构--堆栈
- 数据结构--堆栈
- 数据结构-堆栈
- 数据结构 堆栈
- 内存堆栈和数据结构堆栈
- 内存堆栈和数据结构堆栈
- Python-堆栈
- 黑马程序员_练习:用LinkedList模拟堆栈或队列数据结构
- python算法和数据结构笔记--汉诺塔问题超详细递归过程图解(堆栈数据结构)
- PAT 1033Shopping in Mars (25)(子序列)
- Java复习(3)—java程序代码执行顺序
- Python入门:队列在线程中的使用
- 机器学习(四):逻辑回归
- tomcat启动正常,却不能启动项目
- Python 数据结构_堆栈
- HTML的POST和GET
- (9)HTML5-表格与窗体
- jQuery动画animate方法使用介绍
- iOS UIView的生命周期
- 目标检测简要综述
- JS实现各种复制到剪贴板
- JAVA反射之方法反射的基本操作
- 过滤器、监听器、拦截器的区别