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显示天气预报
Mar 02 Python
详解python中的文件与目录操作
Jul 11 Python
Python OpenCV处理图像之滤镜和图像运算
Jul 10 Python
Python爬虫——爬取豆瓣电影Top250代码实例
Apr 17 Python
python通过opencv实现图片裁剪原理解析
Jan 19 Python
Python 格式化输出_String Formatting_控制小数点位数的实例详解
Feb 04 Python
tensorflow 实现自定义梯度反向传播代码
Feb 10 Python
Django 构建模板form表单的两种方法
Jun 14 Python
python drf各类组件的用法和作用
Jan 12 Python
python中编写函数并调用的知识点总结
Jan 13 Python
OpenCV-Python实现轮廓拟合
Jun 08 Python
python Django框架快速入门教程(后台管理)
Jul 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
Sony CFR 320 修复改造
2020/03/14 无线电
php去掉URL网址中带有PHPSESSID的配置方法
2014/07/08 PHP
php准确计算复活节日期的方法
2015/04/18 PHP
利用PHP实现一个简单的用户登记表示例
2017/04/25 PHP
php根据地址获取百度地图经纬度的实例方法
2019/09/03 PHP
用Greasemonkey 脚本收藏网站会员信息到本地
2009/10/26 Javascript
推荐40个简单的 jQuery 导航插件和教程(下篇)
2012/09/14 Javascript
javascript改变position值实现菜单滚动至顶部后固定
2013/01/18 Javascript
JavaScript执行顺序详细介绍
2013/12/04 Javascript
在javascript中如何得到中英文混合字符串的长度
2014/01/17 Javascript
实例讲解javascript注册事件处理函数
2016/01/09 Javascript
jQuery获取同级元素的简单代码
2016/07/09 Javascript
微信小程序 MD5加密登录密码详解及实例代码
2017/01/12 Javascript
windows下vue-cli及webpack搭建安装环境
2017/04/25 Javascript
详解axios在node.js中的post使用
2017/04/27 Javascript
vue2.0 与 bootstrap datetimepicker的结合使用实例
2017/05/22 Javascript
js自定义弹框插件的封装
2020/08/24 Javascript
详解如何在nuxt中添加proxyTable代理
2018/08/10 Javascript
vuex直接赋值的三种方法总结
2018/09/16 Javascript
Vue slot用法(小结)
2018/10/22 Javascript
python解析xml文件实例分析
2015/05/27 Python
python解析基于xml格式的日志文件
2017/02/25 Python
Python入门_浅谈逻辑判断与运算符
2017/05/16 Python
解决python3中解压zip文件是文件名乱码的问题
2018/03/22 Python
Python学习笔记之open()函数打开文件路径报错问题
2018/04/28 Python
Python 中 function(#) (X)格式 和 (#)在Python3.*中的注意事项
2018/11/30 Python
python中字典按键或键值排序的实现代码
2019/08/27 Python
python实现银行账户系统
2021/02/22 Python
Bjorn Borg官方网上商店:国际运动时尚品牌
2016/08/27 全球购物
俄罗斯名牌服装网上商店:UNIQUE FABRIC
2019/07/25 全球购物
nohup的用法
2012/11/26 面试题
人力资源作业细则
2014/03/03 职场文书
房屋出售协议书
2014/04/10 职场文书
电子商务专业自荐信
2014/06/02 职场文书
反邪教观后感
2015/06/11 职场文书
2016医师资格考试考生诚信考试承诺书
2016/03/25 职场文书