这篇文章主要介绍了 Python 数据结构之堆栈实例代码的相关资料, 需要的朋友可以参考下
Python 是一种面向对象、解释型计算机程序设计语言,由 Guido van Rossum 于 1989 年底发明,第一个公开发行版发行于 1991 年。Python 语法简洁而清晰,具有丰富和强大的类库。它常被昵称为胶水语言,它能够把用其他语言制作的各种模块(尤其是 C/C++)很轻松地联结在一起。
Python 堆栈
堆栈是一个后进先出 (LIFO) 的数据结构. 堆栈这个数据结构可以用于处理大部分具有后进先出的特性的程序流 .
在堆栈中, 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() 这两个列表类型内建函数的调用.
来源: http://www.phperz.com/article/17/0309/320834.html