python数据结构与算法第10讲_python数据结构与算法(10)
栈
栈(stack),有些地⽅称为堆栈,是⼀种容器,可存⼊数据元素、访问元 素、删除元素,它的特点在于只能允许在容器的⼀端(称为栈顶端指标,英 语:top)进⾏加⼊数据(英语:push)和输出数据(英语:pop)的运算。 没有了位置概念,保证任何时候可以访问、删除的元素都是此前最后存⼊的 那个元素,确定了⼀种默认的访问顺序。
由于栈数据结构只允许在⼀端进⾏操作,因⽽按照后进先出(LIFO, Last In First Out)的原理运作。
栈结构实现
栈可以⽤顺序表实现,也可以⽤链表实现。
栈的操作
Stack() 创建⼀个新的空栈 push(item) 添加⼀个新的元素item到栈顶 pop() 弹出栈顶元素 peek() 返回栈顶元素 is_empty() 判断栈是否为空 size() 返回栈的元素个数
class Stack(object): """栈""" def __init__(self): self.items = []
def is_empty(self): """判断是否为空""" return self.items == []
def push(self, item): """加⼊元素""" self.items.append(item)
def pop(self): """弹出元素""" return self.items.pop()
def peek(self): """返回栈顶元素""" return self.items[len(self.items)-1]
def size(self): """返回栈的⼤⼩""" return len(self.items)
if __name__ == "__main__": stack = Stack() stack.push("hello") stack.push("world") stack.push("itcast") print stack.size() print stack.peek() print stack.pop() print stack.pop() print stack.pop()
执⾏过程如下:
python数据结构与算法第10讲_python数据结构与算法(10)相关推荐
- python数据结构与算法第10讲_Python数据结构与算法10:基本结构:练习题1
注:本文如涉及到代码,均经过Python 3.7实际运行检验,保证其严谨性. 本文阅读时间约为4分钟. 栈的编程练习题1:有效的括号 给定一个只包括 '(',')','{','}','[',']' 的 ...
- python删除链表满足pred的元素_python 数据结构一 之 线性表
python数据结构教程第一课 从这里将会正式开始讲解python的一些实用的数据结构,原理加上实例源码. 一.简介 二.线性表的抽象数据类型 三.顺序表的实现 四.链接表的实现 1.单链表 2.带尾 ...
- python算法库执行效率_Python智能优化算法库小汇总
最近查了一圈python的智能优化算法库,发现在python里面这样的库相对一些传统的语言还真是不太多(比如Matlab).总的看起来似乎起步都还比较晚(个人认为有可能是因为智能算法本身相对复杂并且过 ...
- python取列表前几个元素_python list输出最后10个元素
python list输出10个元素的方法 怎么在python中输出一个列表中出现次数前十的元素 打印列表中出现前十的元素,可以利用列表的count属性,可以计数,然后根据数量多少排序 来输出元素 a ...
- python数据结构与算法第六讲_Python 学习 -- 数据结构与算法 (六)
栈 是一种 "操作受限"的线性表,只允许在一端插入和删除数据. 从功能是上来说,数组和链表确实可以替代栈,但是特定的数据结构是对特定场景的抽象,而且,数组或链表暴露了太多的操作接口 ...
- python程序结构有哪几种_Python数据结构与算法(几种排序)小结
Python数据结构与算法(几种排序) 数据结构与算法(Python) 冒泡排序 冒泡排序(英语:Bubble Sort)是一种简单的排序算法.它重复地遍历要排序的数列,一次比较两个元素,如果他们的顺 ...
- python列表是顺序表还是链表_Python数据结构与算法(链表使用详解)
链表 单向链表 p是头节点,指向第一个值,最后一个是伪节点,因为不指向地址. 表元素域elem用来存放具体的数据 链接域next用来存放下一个节点的位置(python中的标识) 变量p指向链表的头节点 ...
- python编写代码运用递归画图形_python数据结构与算法 22 递归图形
上节中我们已经知道有些问题,如果用递归解决变得非常容易.但是仍然很难在大脑里形成一种模型或可视化的方法,让我们直觉地明白函数递归过程到底发生了什么.这一节我们引入几个例子,用递归的方法画几个有趣的图形 ...
- python包含多个元组的元组_Python数据结构(元组,列表,字典)
Python内置了 几种数据结构,元组,列表 字典 1.元组 元组可以由不同的元素组成,所有元素通过圆括号( )包含起来,并通过逗号","隔开.如变量名 = (元素1,元素2,. ...
最新文章
- 传智168期JavaEE struts2杜宏 day 29~day31笔记(2017年2月4日23:14:00)
- webmin下重启linux系统
- oracle忘记密码
- 【实验吧】编程循环求底运算
- thinkphp url去掉index.php,thinkphp 去掉URL 里面的index.php(?s=)
- QEMU 网络虚拟化
- android listview下拉刷新动画,ListView下拉刷新实现方式详解和改造(上)
- Zookeeper面试题锦集
- Mac系统下运行Java项目出现Unable to start embedded Tomcat server解决方法
- HTML5中Audio使用踩坑汇总
- 一键搞定JavaEE应用 JRE+Tomcat+Mysql-JaveEE绿色运行环境JTM0 9版
- Rhino基础教程---三管混接(法二、法三)
- 【计量经济学论文】近十年烟台港发展情况的计量分析(节选)
- oracle plm 文件系统,ORACLE-PlM管理方案(标准材料).ppt
- 敏捷迭代燃尽图_3个敏捷燃尽报告以及如何使用它们
- 【网络通信三】研华网关Modbus服务设置
- matlab中solve解方程,怎么用Matlab解方程?
- 自然月合同月 生成费用
- 一文读懂,CPU、精简指令集、复杂指令集该如何理解?
- 日历记事本java_日历记事本-JAVA课程设计..