Python模拟栈(stack)进出--实现栈的先进后出
先说明下:栈,是限制在表一端进行插入和删除操作的线性表。允许进行插入、删除操作的这一端称为栈顶(Top),另一个固定端称为栈底。例如栈中有三个元素,近栈的顺序是a1、a2、a3,当需要出栈时顺序为a3,a2,a1,所以栈又称“后进先出”或“先进后出”的线性表,简称“LIFO表”或“FILO表”。
现在使用Python实现栈的进出,直接上代码吧:
#模拟栈的操作:先进后出
#建立空的栈,用列表模拟你顺序栈
stack = []
#1.进栈:将输入的字符追加到stack栈中,模拟入栈
def push_stack():num = input("input to push :")stack.append(num)print("%s has been push " %num)
#2.出栈:删除最后一个字符,模拟出栈
def pop_stack():print("%s has out" %stack.pop())
#3.显示目前栈的内容
def show_stack():print(stack)#此处将可选的命令放在字典中作为key,然后找到key所对应的的函数名
def show_menu():#注意,函数名不能加'()',否则系统就会当成函数的调用从而直接执行这个函数commands = {'0':push_stack,'1':pop_stack,'2':show_stack,}prompt = """(0):push stack(1):pop stack (2):show stack(3):exitinput what U want(0/1/2/3):"""while True:#input(prompt)表示将上面的prompt显示出来#然后得到字符串,用strip()去除两端空白,再取下标为0的字符choice = input(prompt).strip()[0]if choice == 3:breakif choice not in '0123':print("Invalid input,Try again")#将'()'加在此处,表示调用所选数字对应的函数commands[choice]()show_menu()
执行如下:
1)入栈:
2)检查入栈的数据是否成功入栈:
3)出栈:
栈顶的优先出栈,两次出栈后,剩下‘0’,‘1’。
思想很容易理解,进栈出栈,先进后出,但是代码的话还是得多琢磨下,结合字典,每个操作都调用独立的函数,进行简单的判断后再执行对应函数。
Python模拟栈(stack)进出--实现栈的先进后出相关推荐
- 用一个栈实现另一个栈的排序
要求: 在一个栈中元素的类型为整型,现在想将该栈从栈顶到栈底按从大到小的顺序排序,只许申请一个栈,除此之外,可以申请其他变量,但是不能申请额外的数据结构 解题思路: 待排序的栈stack, 辅助栈he ...
- stack在python中是什么意思_python栈是什么意思
python栈是什么意思? 栈是一种特殊的列表,栈内的元素只能通过列表的一端访问,这一端称为栈顶.栈被称为一种后入先出(LIFO,last-in-first-out)的数据结构. 由于栈具有后入先出的 ...
- python数据结构和算法 时间复杂度分析 乱序单词检测 线性数据结构 栈stack 字符匹配 表达式求值 queue队列 链表 递归 动态规划 排序和搜索 树 图
python数据结构和算法 参考 本文github 计算机科学是解决问题的研究.计算机科学使用抽象作为表示过程和数据的工具.抽象的数据类型允许程序员通过隐藏数据的细节来管理问题领域的复杂性.Pytho ...
- Python模拟入栈出栈操作
目标: 1.编写菜单,提示用户操作选项(push,pop,view,quit) 2.规则:定义列表,先入栈,后出栈,后入栈,先出栈 1.模拟入栈.出栈操作 >>> list1 = [ ...
- python基本数据结构栈stack和队列queue
1,栈,后进先出,多用于反转 Python里面实现栈,就是把list包装成一个类,再添加一些方法作为栈的基本操作. 栈的实现: class Stack(object):#初始化栈为空列表def __i ...
- Python 栈(Stack)实现
在多种语言中,栈(Stack)是较为重要的一种基本数据结构.在Python中通过类可以定义一个栈结构. 以下是正文 先写好这些 class Stack:"""关于栈的类& ...
- python数据结构-栈(stack)
栈 栈是一种特殊的线性表,其插入删除操作只能在表的尾部进行 在栈中允许进行插入删除的操作的一端为栈顶,另一端为栈底 栈的插入叫做入栈,栈的删除叫做出栈 栈是先进后出,类似往箱子里放衣服,先放进来的衣服 ...
- Python数据结构实战—栈(Stack)
文章目录 1.栈的性质(后进先出) 2.使用deque作为栈 3.使用双端队列实现Stack类 1.栈的性质(后进先出) s = [] #定义一个空数组装元素 s.append('https://ww ...
- [LeetCode]-Python刷题第三周(栈和队列)
20. Valid Parentheses 合法括号(Easy) Given a string containing just the characters '(', ')', '{', '}', ' ...
最新文章
- RxJava初入学习(一)之Gifts-for-designers
- 给初恋女孩的信....
- RS232与RS485的功能与区别!
- NOIP模拟测试26「嚎叫响彻在贪婪的机房·主仆见证了 Hobo 的离别·征途堆积出友情的永恒」...
- 防止电子邮件地址被搜索到的新方法
- NIPS2018 Workshop一览
- oracle之完整性约束
- python2.3嵌套if结构:
- 安装应用需要打开未知来源权限_华为盒子安装不了第三方软件?不存在的,简单几步即可搞定...
- IDEA中对Git的常规操作
- Asterisk-Javanbsp;教程(中文版)…
- 多个wordpress_40多个使用WordPress的热门大学
- 安防监控直播中无插件web直播方案中实现快照抓取的功能
- SQL语句查询出现异常,SQL语句:*** 给定关键字不在字典中。
- 一只小蜜蜂(C ++ 详解 )
- 你可能没听过的11个Python库
- Ubuntu安装Beyond Compare(五)
- 矩阵链乘法 自顶向下 自底向上 Python 实现 算法导论
- python 数据清洗 豆瓣电影_利用python进行数据清洗和分析
- 博士员工离职率21.8%,任正非反思:华为这么大,英雄为何无用武之地?