python中栈的原理及实现方法示例


Posted in Python onNovember 27, 2019

本文实例讲述了python中栈的原理及实现方法。分享给大家供大家参考,具体如下:

栈(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程序设计有所帮助。

Python 相关文章推荐
使用Python脚本实现批量网站存活检测遇到问题及解决方法
Oct 11 Python
Python的mysql数据库的更新如何实现
Jul 31 Python
python+matplotlib绘制饼图散点图实例代码
Jan 20 Python
Python实现接受任意个数参数的函数方法
Apr 21 Python
django 外键model的互相读取方法
Dec 15 Python
python监测当前联网状态并连接的实例
Dec 18 Python
Python反爬虫技术之防止IP地址被封杀的讲解
Jan 09 Python
django 基于中间件实现限制ip频繁访问过程详解
Jul 30 Python
Python flask框架端口失效解决方案
Jun 04 Python
通过自学python能找到工作吗
Jun 21 Python
python爬取豆瓣电影排行榜(requests)的示例代码
Feb 18 Python
教你使用Python获取QQ音乐某个歌手的歌单
Apr 03 Python
关于Numpy数据类型对象(dtype)使用详解
Nov 27 #Python
python队列原理及实现方法示例
Nov 27 #Python
Python numpy.zero() 初始化矩阵实例
Nov 27 #Python
python双端队列原理、实现与使用方法分析
Nov 27 #Python
Python实现RGB与HSI颜色空间的互换方式
Nov 27 #Python
OpenCV+Python--RGB转HSI的实现
Nov 27 #Python
解决pycharm启动后总是不停的updating indices...indexing的问题
Nov 27 #Python
You might like
PHP类的静态(static)方法和静态(static)变量使用介绍
2012/02/19 PHP
PHP基础学习之流程控制的实现分析
2013/04/28 PHP
PHP开发框架kohana3 自定义路由设置示例
2014/07/14 PHP
php绘制一个扇形的方法
2015/01/24 PHP
浅谈PHP的exec()函数无返回值排查方法(必看)
2017/03/31 PHP
php数据库的增删改查 php与javascript之间的交互
2017/08/31 PHP
JS实现self的resend
2010/07/22 Javascript
倒记时60刷新网页的js代码
2014/02/18 Javascript
bootstrap data与jquery .data
2014/07/07 Javascript
JQuery Tips相关(1)----关于$.Ready()
2014/08/14 Javascript
JavaScript中的变量定义与储存介绍
2014/12/31 Javascript
NodeJS学习笔记之(Url,QueryString,Path)模块
2015/01/13 NodeJs
JavaScript中window.open用法实例详解
2015/04/15 Javascript
JavaScript实现的简单烟花特效代码
2015/10/20 Javascript
jQuery获取复选框选中的当前行的某个字段的值
2017/09/15 jQuery
JS+HTML5 Canvas实现简单的写字板功能示例
2018/08/30 Javascript
使用mpvue搭建一个初始小程序及项目配置方法
2018/12/03 Javascript
Vue中props的详解
2019/05/16 Javascript
JS中锚点链接点击平滑滚动并自由调整到顶部位置
2021/02/06 Javascript
python列出目录下指定文件与子目录的方法
2015/07/03 Python
在Django中同时使用多个配置文件的方法
2015/07/22 Python
Python中在脚本中引用其他文件函数的实现方法
2016/06/23 Python
对tensorflow 的模型保存和调用实例讲解
2018/07/28 Python
python批量修改ssh密码的实现
2019/08/08 Python
Python:slice与indices的用法
2019/11/25 Python
python+Django+pycharm+mysql 搭建首个web项目详解
2019/11/29 Python
CSS3 滤镜 webkit-filter详细介绍及使用方法
2012/12/27 HTML / CSS
理财投资建议书
2014/03/12 职场文书
高三上学期学习自我评价
2014/04/23 职场文书
农林经济管理专业自荐信
2014/09/01 职场文书
会计电算化实训报告
2014/11/04 职场文书
结婚司仪主持词
2015/06/29 职场文书
2016年万圣节活动个人总结
2016/04/05 职场文书
springboot集成flyway自动创表的详细配置
2021/06/26 Java/Android
利用Apache Common将java对象池化的问题
2022/06/16 Servers
Spring Cloud OpenFeign模版化客户端
2022/06/25 Java/Android