最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
Python 数据结构之堆栈实例代码
时间:2017-03-01 编辑:简简单单 来源:一聚教程网
Python 堆栈
堆栈是一个后进先出(LIFO)的数据结构. 堆栈这个数据结构可以用于处理大部分具有后进先出的特性的程序流 .
在堆栈中, push 和 pop 是常用术语:
push: 意思是把一个对象入栈.
pop: 意思是把一个对象出栈.
下面是一个由 Python 实现的简单的堆栈结构:
代码如下 | 复制代码 |
stack=[] # 初始化一个列表数据类型对象, 作为一个栈
defpushit(): # 定义一个入栈方法 stack.append(raw_input('Enter New String: ').strip()) # 提示输入一个入栈的 String 对象, 调用 Str.strip() 保证输入的 String 值不包含多余的空格
defpopit(): # 定义一个出栈方法 iflen(stack)==0: print"Cannot pop from an empty stack!" else: print'Remove [', `stack.pop()`,']' # 使用反单引号(` `)来代替 repr(), 把 String 的值用引号扩起来, 而不仅显示 String 的值
defviewstack(): # 定义一个显示堆栈中的内容的方法 printstack
CMDs={'u':pushit,'o':popit,'v':viewstack} # 定义一个 Dict 类型对象, 将字符映射到相应的 function .可以通过输入字符来执行相应的操作
defshowmenu(): # 定义一个操作菜单提示方法 pr=""" p(U)sh p(O)p (V)iew (Q)uit
Enter choice: """
whileTrue: whileTrue: 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
ifchoicenotin'uovq': print'Invalid option, try again' else: break
ifchoice=='q': break CMDs[choice]() # 获取 Dict 中字符对应的 functionName, 实现函数调用
if__name__=='__main__': showmenu() |
NOTE: 在堆栈数据结构中, 主要应用了 List 数据类型对象的 容器 和 可变 等特性, 表现在 List.append() 和 List.pop() 这两个列表类型内建函数的调用.
相关文章
- PPT实现折线图表与数据对应变化的图文教程(计步器实例) 02-09
- 海量数据相似度计算实例 simhash和海明距离 02-09
- DButils+dbcp数据源+spring增删改查学习实例 12-05
- PHP导出数据超时的优化建议解读 10-31
- PHP之mysql位运算解析 10-31
- Laravel实现登录跳转功能解析 10-31