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通过ElementTree操作XML获取结点读取属性美化XML
Dec 02 Python
Python实现的简单算术游戏实例
May 26 Python
Python编程中的文件读写及相关的文件对象方法讲解
Jan 19 Python
解决Python出现_warn_unsafe_extraction问题的方法
Mar 24 Python
对python使用http、https代理的实例讲解
May 07 Python
使用pandas将numpy中的数组数据保存到csv文件的方法
Jun 14 Python
python中比较两个列表的实例方法
Jul 04 Python
python在OpenCV里实现投影变换效果
Aug 30 Python
python图形绘制奥运五环实例讲解
Sep 14 Python
基于Python实现天天酷跑功能
Jan 06 Python
Pandas||过滤缺失数据||pd.dropna()函数的用法说明
May 14 Python
Python函数中的不定长参数相关知识总结
Jun 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面向对象编程快速入门
2006/10/09 PHP
真正的ZIP文件操作类(php)
2007/07/21 PHP
PHP Header用于页面跳转要注意的几个问题总结
2008/10/03 PHP
PHP四舍五入精确小数位及取整
2014/01/14 PHP
CI框架(CodeIgniter)实现的数据库增删改查操作总结
2018/05/23 PHP
比较详细的关于javascript中void(0)的具体含义解释
2007/08/02 Javascript
JavaScript读取中文cookie时的乱码问题的解决方法
2009/10/14 Javascript
JS操作iframe里的dom(实例讲解)
2014/01/29 Javascript
使用canvas实现仿新浪微博头像截取上传功能
2015/09/02 Javascript
jQuery实现右侧显示可向左滑动展示的深色QQ客服效果代码
2015/10/23 Javascript
JavaScript实现获取某个元素相邻兄弟节点的prev与next方法
2016/01/25 Javascript
nodejs redis 发布订阅机制封装实现方法及实例代码
2016/12/15 NodeJs
30分钟快速入门掌握ES6/ES2015的核心内容(上)
2018/04/18 Javascript
tweenjs缓动算法的使用实例分析
2019/08/26 Javascript
Vue.js下拉菜单组件使用方法详解
2019/10/19 Javascript
vue 实现setInterval 创建和销毁实例
2020/07/21 Javascript
vue组件开发之tab切换组件使用详解
2020/08/21 Javascript
jquery实现广告上下滚动效果
2021/03/04 jQuery
python中的函数用法入门教程
2014/09/02 Python
使用IPython来操作Docker容器的入门指引
2015/04/08 Python
详解Python中的多线程编程
2015/04/09 Python
利用Python实现命令行版的火车票查看器
2016/08/05 Python
Python抓取框架Scrapy爬虫入门:页面提取
2017/12/01 Python
django初始化数据库的实例
2018/05/27 Python
python 批量修改/替换数据的实例
2018/07/25 Python
Django 路由控制的实现代码
2018/11/08 Python
快速解决pyqt5窗体关闭后子线程不同时退出的问题
2019/06/19 Python
Python对接 xray 和微信实现自动告警
2019/09/17 Python
python定时任务 sched模块用法实例
2019/11/04 Python
如何用SQL语句进行模糊查找
2015/09/25 面试题
简历自我评价怎么写好呢?
2014/01/04 职场文书
春节晚会主持词
2014/03/24 职场文书
幼儿园学前班幼儿评语
2014/12/29 职场文书
办公室禁烟通知
2015/04/23 职场文书
婚庆开业庆典主持词
2015/06/30 职场文书
如何判断pytorch是否支持GPU加速
2021/06/01 Python