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绘制数据的瀑布图的教程
Apr 07 Python
django中的setting最佳配置小结
Nov 21 Python
Python实现使用卷积提取图片轮廓功能示例
May 12 Python
Python爬虫实现(伪)球迷速成
Jun 10 Python
pandas进行数据的交集与并集方式的数据合并方法
Jun 27 Python
python中时间、日期、时间戳的转换的实现方法
Jul 06 Python
python银行系统实现源码
Oct 25 Python
Python内置加密模块用法解析
Nov 25 Python
Python获取对象属性的几种方式小结
Mar 12 Python
python实现吃苹果小游戏
Mar 21 Python
Python调用飞书发送消息的示例
Nov 10 Python
Python一行代码实现自动发邮件功能
May 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
一个连接两个不同MYSQL数据库的PHP程序
2006/10/09 PHP
php中explode与split的区别介绍
2012/10/03 PHP
php增删改查示例自己写的demo
2013/09/04 PHP
ThinkPHP采用GET方式获取中文参数查询无结果的解决方法
2014/06/26 PHP
使用纯php代码实现页面伪静态的方法
2015/07/25 PHP
详解PHP中instanceof关键字及instanceof关键字有什么作用
2015/11/05 PHP
php微信开发之上传临时素材
2016/06/24 PHP
PHP使用两个栈实现队列功能的方法
2018/01/15 PHP
页面版文本框智能提示JS代码
2009/11/20 Javascript
JavaScript中的prototype使用说明
2010/04/13 Javascript
A标签中通过href和onclick传递的this对象实现思路
2013/04/19 Javascript
无刷新预览所选择的图片示例代码
2014/04/02 Javascript
javascript写的一个模拟阅读小说的程序
2014/04/04 Javascript
jQuery中Form相关知识汇总
2015/01/06 Javascript
js获取元素外链样式的方法
2015/01/27 Javascript
动态生成的DOM不会触发onclick事件的原因及解决方法
2016/08/06 Javascript
javascript学习之json入门
2016/12/22 Javascript
基于Bootstrap框架菜鸟入门教程(推荐)
2017/09/17 Javascript
使用Vue的slot插槽分发父组件内容实现高度复用、更加灵活的组件(推荐)
2018/05/01 Javascript
ES6中的class是如何实现的(附Babel编译的ES5代码详解)
2019/05/17 Javascript
vue 父组件通过$refs获取子组件的值和方法详解
2019/11/07 Javascript
Python实现删除当前目录下除当前脚本以外的文件和文件夹实例
2015/07/27 Python
利用Python命令行传递实例化对象的方法
2016/11/02 Python
Python SMTP发送邮件遇到的一些问题及解决办法
2018/10/24 Python
python防止随意修改类属性的实现方法
2019/08/21 Python
python错误调试及单元文档测试过程解析
2019/12/19 Python
PyTorch学习:动态图和静态图的例子
2020/01/06 Python
Python爬虫中Selenium实现文件上传
2020/12/04 Python
HTML5拖放API实现自动生成相框功能
2020/04/07 HTML / CSS
Html5移动端div固定到底部实现底部导航条的几种方式
2021/03/09 HTML / CSS
房地产开盘策划方案
2014/02/10 职场文书
民族团结先进集体事迹材料
2014/05/22 职场文书
电力工程合作意向书
2015/05/11 职场文书
2019年年中工作总结讲话稿模板
2019/03/25 职场文书
详解MySQL的Seconds_Behind_Master
2021/05/18 MySQL
spring 项目实现限流方法示例
2022/07/15 Java/Android