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使用urllib2模块实现断点续传下载的方法
Jun 17 Python
Python操作Word批量生成文章的方法
Jul 28 Python
Python中字典映射类型的学习教程
Aug 20 Python
python 网络编程详解及简单实例
Apr 25 Python
Python基于列表list实现的CRUD操作功能示例
Jan 05 Python
Django-Rest-Framework 权限管理源码浅析(小结)
Nov 12 Python
cProfile Python性能分析工具使用详解
Jul 22 Python
Selenium常见异常解析及解决方案示范
Apr 10 Python
django的autoreload机制实现
Jun 03 Python
Python+Appium实现自动化清理微信僵尸好友的方法
Feb 04 Python
详解python中[-1]、[:-1]、[::-1]、[n::-1]使用方法
Apr 25 Python
OpenCV-Python 实现两张图片自动拼接成全景图
Jun 11 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
非常不错的MySQL优化的8条经验
2008/03/24 PHP
PHP通用检测函数集合
2011/02/08 PHP
zf框架的db类select查询器join链表使用示例(zend框架)
2014/03/14 PHP
php禁止直接从浏览器输入地址访问.php文件的方法
2014/11/04 PHP
浅谈php命令行用法
2015/02/04 PHP
php将一维数组转换为每3个连续值组成的二维数组
2016/05/06 PHP
php读取出一个文件夹及其子文件夹下所有文件的方法示例
2017/06/15 PHP
使用PHP+Redis实现延迟任务,实现自动取消订单功能
2019/11/21 PHP
jquery与google map api结合使用 控件,监听器
2010/03/04 Javascript
js document.write()使用介绍
2014/02/21 Javascript
JavaScript中消除闭包的一般方法介绍
2015/03/16 Javascript
使用vue编写一个点击数字计时小游戏
2016/08/31 Javascript
JS常用算法实现代码
2016/11/14 Javascript
jQuery+PHP+Mysql实现抽奖程序
2020/04/12 jQuery
详解Angular的8个主要构造块
2017/06/20 Javascript
微信小程序异步处理详解
2017/11/10 Javascript
JavaScript 判断数据类型的4种方法
2020/09/11 Javascript
echarts柱状图背景重叠组合而非并列的实现代码
2020/12/10 Javascript
解决vue使用vant轮播组件swipe + flex时文字抖动问题
2021/01/07 Vue.js
探寻python多线程ctrl+c退出问题解决方案
2014/10/23 Python
Python脚本处理空格的方法
2016/08/08 Python
Python批量生成特定尺寸图片及图画任意文字的实例
2019/01/30 Python
Python实现的微信红包提醒功能示例
2019/08/22 Python
Python如何使用argparse模块处理命令行参数
2019/12/11 Python
Python pygame绘制文字制作滚动文字过程解析
2019/12/12 Python
Pytorch自己加载单通道图片用作数据集训练的实例
2020/01/18 Python
python3读取autocad图形文件.py实例
2020/06/05 Python
python利用google翻译方法实例(翻译字幕文件)
2020/09/21 Python
南京某公司笔试题
2013/01/27 面试题
建筑专业自我鉴定
2013/10/22 职场文书
协议书格式
2014/04/23 职场文书
刑事辩护授权委托书
2014/09/13 职场文书
北京故宫导游词
2015/01/31 职场文书
工程款申请报告
2015/05/15 职场文书
2016民族团结先进个人事迹材料
2016/02/26 职场文书
Log4j.properties配置及其使用
2021/08/02 Java/Android