博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python 数据结构_堆栈
阅读量:5887 次
发布时间:2019-06-19

本文共 1739 字,大约阅读时间需要 5 分钟。

目录

堆栈

堆栈是一个后进先出(LIFO)的数据结构. 堆栈这个数据结构可以用于处理大部分具有后进先出的特性的程序流 .

在堆栈中, pushpop 是常用术语:

  • 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() 这两个列表类型内建函数的调用.

转载于:https://www.cnblogs.com/jmilkfan-fanguiju/p/7532318.html

你可能感兴趣的文章
javascript鼠标事件【部分】
查看>>
SSH 通过密钥登录
查看>>
今天只是一个开始
查看>>
Mycat读写分离以及拆库拆表综合实验2:部署配置mycat读写分离与拆库拆表
查看>>
程序至上
查看>>
我的友情链接
查看>>
新书上市:《ANSYS 14.0超级学习手册》
查看>>
$(window).load(function() {})和$(document).ready(function(){})的区别
查看>>
LVS-DR模型实现负载均衡
查看>>
Oracle_052_lesson_p8
查看>>
基于WeiPHP的微信批量文本自定义回复的快捷实现
查看>>
ps动态文字图片
查看>>
android之自定义ViewGroup和自动换行的布局的实现
查看>>
系统化思维导论读书笔记
查看>>
storm使用问题随笔
查看>>
我的友情链接
查看>>
Office2007另存为显示“正在初始化要显示的根文件夹”解决方法
查看>>
我的友情链接
查看>>
Win8大百科06期:硬件需求/版本知多少?
查看>>
raid
查看>>