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 逐行分割大txt文件的方法
Oct 10 Python
python实现远程通过网络邮件控制计算机重启或关机
Feb 22 Python
python基础教程项目二之画幅好画
Apr 02 Python
python画一个玫瑰和一个爱心
Aug 18 Python
Python开发的十个小贴士和技巧及长常犯错误
Sep 27 Python
python实现词法分析器
Jan 31 Python
详解Python连接MySQL数据库的多种方式
Apr 16 Python
在Qt5和PyQt5中设置支持高分辨率屏幕自适应的方法
Jun 18 Python
Python实现图像去噪方式(中值去噪和均值去噪)
Dec 18 Python
利用python3筛选excel中特定的行(行值满足某个条件/行值属于某个集合)
Sep 04 Python
python实现经纬度采样的示例代码
Dec 10 Python
Python编写可视化界面的全过程(Python+PyCharm+PyQt)
May 17 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+mysql写的简单留言本实例代码
2008/07/25 PHP
php中global和$GLOBALS[]的分析之一
2012/02/02 PHP
php实现递归的三种基本方式
2020/07/04 PHP
PHP 实现字符串翻转(包含中文汉字)的实现代码
2017/04/01 PHP
PHP实现的多进程控制demo示例
2019/07/22 PHP
PHP文件打开关闭及读写操作示例解析
2020/08/06 PHP
小议Function.apply() 之一------(函数的劫持与对象的复制)
2006/11/30 Javascript
浅析js封装和作用域
2013/07/09 Javascript
JavaScript中输出标签的方法
2014/08/27 Javascript
网页收藏夹显示ICO图标(代码少)
2015/08/04 Javascript
JS实现的鼠标跟随代码(卡通手型点击效果)
2015/10/26 Javascript
用Nodejs搭建服务器访问html、css、JS等静态资源文件
2017/04/28 NodeJs
深究AngularJS中$sce的使用
2017/06/12 Javascript
详解性能更优越的小程序图片懒加载方式
2018/07/18 Javascript
解决vue2.0 element-ui中el-upload的before-upload方法返回false时submit()不生效问题
2018/08/24 Javascript
基于Webpack4和React hooks搭建项目的方法
2019/02/05 Javascript
vue自定义指令directive的使用方法
2019/04/07 Javascript
JavaScript动态添加数据到表单并提交的几种方式
2019/06/26 Javascript
微信js-sdk 录音功能的示例代码
2019/11/01 Javascript
微信小程序动态设置图片大小的方法
2019/11/21 Javascript
[02:24]DOTA2痛苦女王 英雄基础教程
2013/11/26 DOTA
python 算法 排序实现快速排序
2012/06/05 Python
Python简单的制作图片验证码实例
2017/05/31 Python
python 函数传参之传值还是传引用的分析
2017/09/07 Python
python通过tcp发送xml报文的方法
2018/12/28 Python
使用python3批量下载rbsp数据的示例代码
2019/12/20 Python
HTML5: Web 标准最巨大的飞跃
2008/10/17 HTML / CSS
HTML5实现移动端复制功能
2018/04/19 HTML / CSS
Java里面如何把一个Array数组转换成Collection, List
2013/07/26 面试题
企业总经理岗位职责
2014/02/13 职场文书
2014年创先争优工作总结
2014/12/11 职场文书
中学教师师德师风承诺书
2015/04/28 职场文书
丧事主持词
2015/07/02 职场文书
关于元旦的广播稿2016
2015/12/17 职场文书
什么是检讨书?检讨书的格式及范文
2019/11/05 职场文书
只用40行Python代码就能写出pdf转word小工具
2021/05/31 Python