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中list常用操作实例详解
Jun 03 Python
Python脚本简单实现打开默认浏览器登录人人和打开QQ的方法
Apr 12 Python
在Python中使用AOP实现Redis缓存示例
Jul 11 Python
使用python读取txt文件的内容,并删除重复的行数方法
Apr 18 Python
在dataframe两列日期相减并且得到具体的月数实例
Jul 03 Python
Windows下安装Scrapy
Oct 17 Python
python try except 捕获所有异常的实例
Oct 18 Python
python numpy元素的区间查找方法
Nov 14 Python
解决Django 在ForeignKey中出现 non-nullable field错误的问题
Aug 06 Python
使用keras实现Precise, Recall, F1-socre方式
Jun 15 Python
深入了解Python装饰器的高级用法
Aug 13 Python
Python爬虫之爬取某文库文档数据
Apr 21 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中使用临时表查询数据的一个例子
2013/02/03 PHP
php获取文件内容最后一行示例
2014/01/09 PHP
PHP使用imagick读取PDF生成png缩略图的两种方法
2014/03/20 PHP
php遍历删除整个目录及文件的方法
2015/03/13 PHP
用js解决数字不能换行问题
2010/08/10 Javascript
基于JQuery的简单实现折叠菜单代码
2010/09/15 Javascript
javascript延时加载之defer测试
2012/12/28 Javascript
js点击事件链接的问题解决
2014/04/25 Javascript
avascript中的自执行匿名函数应用示例
2014/09/15 Javascript
兼容各大浏览器的JavaScript阻止事件冒泡代码
2015/07/09 Javascript
jquery.cookie.js用法实例详解
2015/12/25 Javascript
深入学习jQuery Validate表单验证
2016/01/18 Javascript
jQuery中show与hide方法用法示例
2016/09/16 Javascript
微信小程序删除处理详解
2017/08/16 Javascript
Vue表单类的父子组件数据传递示例
2018/05/03 Javascript
vue+web端仿微信网页版聊天室功能
2019/04/30 Javascript
express框架中使用jwt实现验证的方法
2019/08/25 Javascript
JS实现横向轮播图(中级版)
2020/01/18 Javascript
Python字符串处理函数简明总结
2015/04/13 Python
Python自动扫雷实现方法
2015/07/25 Python
python实现kNN算法
2017/12/20 Python
python机器学习实战之最近邻kNN分类器
2017/12/20 Python
Python实现的FTP通信客户端与服务器端功能示例
2018/03/28 Python
如何使用Python进行OCR识别图片中的文字
2019/04/01 Python
Python 窗体(tkinter)按钮 位置实例
2019/06/13 Python
利用Python计算KS的实例详解
2020/03/03 Python
TCP/IP的分层模型
2013/10/27 面试题
如何写一个自定义标签
2012/12/28 面试题
生物专业个人自荐信范文
2013/11/29 职场文书
对祖国的寄语大全
2014/04/11 职场文书
汽车检测与维修专业求职信
2014/07/04 职场文书
搬迁通知
2015/04/20 职场文书
2015年餐厅服务员工作总结
2015/04/23 职场文书
欠条样本
2015/07/03 职场文书
快消品行业营销模式与盈利模式分享
2019/09/27 职场文书
解决MultipartFile.transferTo(dest) 报FileNotFoundExcep的问题
2021/07/01 Java/Android