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中threading模块join函数用法实例分析
Jun 04 Python
Android应用开发中Action bar编写的入门教程
Feb 26 Python
Tornado高并发处理方法实例代码
Jan 15 Python
用python实现百度翻译的示例代码
Mar 09 Python
Python中的 sort 和 sorted的用法与区别
Aug 10 Python
python 实现保存最新的三份文件,其余的都删掉
Dec 22 Python
Python使用turtle库绘制小猪佩奇(实例代码)
Jan 16 Python
使用pytorch 筛选出一定范围的值
Jun 28 Python
Python调用jar包方法实现过程解析
Aug 11 Python
详解Python中的编码问题(encoding与decode、str与bytes)
Sep 30 Python
Python实现PS滤镜中的USM锐化效果
Dec 04 Python
Python查找算法的实现 (线性、二分,分块、插值查找算法)
Apr 24 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 应用程序安全防范技术研究
2009/09/25 PHP
第四章 php数学运算
2011/12/30 PHP
PHP实现获取图片颜色值的方法
2014/07/11 PHP
smarty模板引擎从php中获取数据的方法
2015/01/22 PHP
php上传图片生成缩略图(GD库)
2016/01/06 PHP
PHP中strnatcmp()函数“自然排序算法”进行字符串比较用法分析(对比strcmp函数)
2016/01/07 PHP
php lcg_value与mt_rand生成0~1随机小数的效果对比分析
2017/04/05 PHP
Mootools 1.2教程 定时器和哈希简介
2009/09/15 Javascript
小议javascript 设计模式 推荐
2009/10/28 Javascript
JS正则验证邮箱的格式详细介绍
2013/11/19 Javascript
jQuery中click事件用法实例
2014/12/26 Javascript
JS实现鼠标滑过链接改变网页背景颜色的方法
2015/10/20 Javascript
详解jQuery UI库中文本输入自动补全功能的用法
2016/04/23 Javascript
JQuery 在文档中查找指定name的元素并移除的实现方法
2016/05/19 Javascript
jQuery fadeOut 异步实例代码详解
2016/08/18 Javascript
深入浅析javascript继承体系
2017/10/23 Javascript
JS异步处理的进化史深入讲解
2019/08/25 Javascript
js 下拉菜单点击旁边收起实现(踩坑记)
2019/09/29 Javascript
vue实现图片上传到后台
2020/06/29 Javascript
javascript实现移动端轮播图
2020/12/09 Javascript
python实现从一组颜色中找出与给定颜色最接近颜色的方法
2015/03/19 Python
Python同时向控制台和文件输出日志logging的方法
2015/05/26 Python
Python实现数据库编程方法详解
2015/06/09 Python
python保存字符串到文件的方法
2015/07/01 Python
django文档学习之applications使用详解
2018/01/29 Python
python numpy 一维数组转变为多维数组的实例
2018/07/02 Python
Python3单行定义多个变量或赋值方法
2018/07/12 Python
python分数表示方式和写法
2019/06/26 Python
PyCharm如何导入python项目的方法
2020/02/06 Python
使用 Python 读取电子表格中的数据实例详解
2020/04/17 Python
Python使用os.listdir和os.walk获取文件路径
2020/05/21 Python
python 将列表里的字典元素合并为一个字典实例
2020/09/01 Python
CSS3美化表单控件全集
2016/06/29 HTML / CSS
HTML+CSS+JavaScript实现图片3D展览的示例代码
2020/10/12 HTML / CSS
2015年度绩效考核工作总结
2015/05/27 职场文书
学术会议领导致辞
2015/07/29 职场文书