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 相关文章推荐
Python3 入门教程 简单但比较不错
Nov 29 Python
简单谈谈python中的Queue与多进程
Aug 25 Python
Flask框架的学习指南之用户登录管理
Nov 20 Python
Python基于scapy实现修改IP发送请求的方法示例
Jul 08 Python
python基于ID3思想的决策树
Jan 03 Python
Python定义函数功能与用法实例详解
Apr 08 Python
解决python super()调用多重继承函数的问题
Jun 26 Python
python中enumerate() 与zip()函数的使用比较实例分析
Sep 03 Python
python读取xml文件方法解析
Aug 04 Python
Python自定义sorted排序实现方法详解
Sep 18 Python
Ubuntu16安装Python3.9的实现步骤
Dec 15 Python
python实现KNN近邻算法
Dec 30 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
第八节 访问方式 [8]
2006/10/09 PHP
深入理解PHP几个算法:PHP冒泡、PHP二分法、PHP求素数、PHP乘法表
2013/06/06 PHP
PHP解密Unicode及Escape加密字符串
2015/05/17 PHP
thinkPHP5项目中实现QQ第三方登录功能
2017/10/20 PHP
使用javascript获取页面名称
2014/12/23 Javascript
12306验证码破解思路分享
2015/03/25 Javascript
jQuery异步上传文件插件ajaxFileUpload详细介绍
2015/05/19 Javascript
Ionic实现仿通讯录点击滑动及$ionicscrolldelegate使用分析
2016/01/18 Javascript
极力推荐10个短小实用的JavaScript代码段
2016/08/03 Javascript
详解Angular中$cacheFactory缓存的使用
2016/08/19 Javascript
AngularJs  Understanding Angular Templates
2016/09/02 Javascript
KnockoutJS 3.X API 第四章之表单submit、enable、disable绑定
2016/10/10 Javascript
bootstarp modal框居中显示的实现代码
2017/02/18 Javascript
JS实现移动端实时监听输入框变化的实例代码
2017/04/12 Javascript
Easyui Datagrid自定义按钮列(最后面的操作列)
2017/07/13 Javascript
Angular2环境搭建具体操作步骤(推荐)
2017/08/04 Javascript
react-router4 配合webpack require.ensure 实现异步加载的示例
2018/01/18 Javascript
JavaScript实现获取select下拉框中第一个值的方法
2018/02/06 Javascript
js实现点击图片在屏幕中间弹出放大效果
2019/09/11 Javascript
node创建Vue项目步骤详解
2020/03/06 Javascript
vue tab滚动到一定高度,固定在顶部,点击tab切换不同的内容操作
2020/07/22 Javascript
Python中int()函数的用法浅析
2017/10/17 Python
使用python将图片格式转换为ico格式的示例
2018/10/22 Python
python+selenium实现自动抢票功能实例代码
2018/11/23 Python
浅谈python常用程序算法
2019/03/22 Python
Python QQBot库的QQ聊天机器人
2019/06/19 Python
在Tensorflow中查看权重的实现
2020/01/24 Python
Iconfont(矢量图标)+iconmoon(图标svg互转)配合javascript实现社交分享系统
2020/04/21 Python
python和php哪个容易学
2020/06/19 Python
深入浅析Python代码规范性检测
2020/07/31 Python
python如何写个俄罗斯方块
2020/11/06 Python
python爬虫利用代理池更换IP的方法步骤
2021/02/21 Python
Django项目在pycharm新建的步骤方法
2021/03/02 Python
新党章心得体会
2014/09/04 职场文书
2015出纳试用期工作总结
2014/12/12 职场文书
2015教师年度考核评语
2015/03/25 职场文书