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使用Socket(Https)Post登录百度的实现代码
May 18 Python
Python的爬虫程序编写框架Scrapy入门学习教程
Jul 02 Python
Python分治法定义与应用实例详解
Jul 28 Python
在Python中表示一个对象的方法
Jun 25 Python
基于MSELoss()与CrossEntropyLoss()的区别详解
Jan 02 Python
Python3.x+迅雷x 自动下载高分电影的实现方法
Jan 12 Python
Python TKinter如何自动关闭主窗口
Feb 26 Python
浅谈django 重载str 方法
May 19 Python
解决pyinstaller 打包exe文件太大,用pipenv 缩小exe的问题
Jul 13 Python
Python urlopen()参数代码示例解析
Dec 10 Python
python数据库批量插入数据的实现(executemany的使用)
Apr 30 Python
Django对接elasticsearch实现全文检索的示例代码
Aug 02 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
E路文章系统PHP
2006/12/11 PHP
PHP教程 预定义变量
2009/10/23 PHP
PHP开发中的错误收集,不定期更新。
2011/02/03 PHP
PHP制作3D扇形统计图以及对图片进行缩放操作实例
2014/10/23 PHP
php短址转换实现方法
2015/02/25 PHP
php微信开发之批量生成带参数的二维码
2016/06/26 PHP
PHP读取Excel类文件
2017/05/15 PHP
用 Javascript 验证表单(form)中多选框(checkbox)值
2009/09/08 Javascript
关于onScroll事件在IE6下每次滚动触发三次bug说明
2011/09/21 Javascript
JS+ACTIVEX实现网页选择本地目录路径对话框
2013/03/18 Javascript
node+express+ejs制作简单页面上手指南
2014/11/26 Javascript
js表单中选择框值的获取及表单的序列化
2015/12/17 Javascript
jQuery 移动端artEditor富文本编辑器
2016/01/11 Javascript
阻止表单提交按钮多次提交的完美解决方法
2016/05/16 Javascript
Bootstrap基本样式学习笔记之按钮(4)
2016/12/07 Javascript
微信小程序仿微信运动步数排行(交互)
2018/07/13 Javascript
基于Vue-cli快速搭建项目的完整步骤
2018/11/03 Javascript
从零撸一个pc端vue的ui组件库( 计数器组件 )
2019/08/08 Javascript
JavaScript 实现下雪特效的示例代码
2020/09/09 Javascript
vue常用高阶函数及综合实例
2021/02/25 Vue.js
python 提取文件的小程序
2009/07/29 Python
Python随机数用法实例详解【基于random模块】
2017/04/18 Python
在python中以相同顺序shuffle两个list的方法
2018/12/13 Python
HTML5 贪吃蛇游戏实现思路及源代码
2013/09/03 HTML / CSS
茵宝(Umbro)英国官方商店:英国足球服装生产商
2016/12/29 全球购物
美国玩具公司:U.S.Toy
2018/05/19 全球购物
销售人员个人求职信
2013/09/26 职场文书
高中打架检讨书
2014/02/13 职场文书
《落花生》教学反思
2014/02/25 职场文书
领导调研接待方案
2014/02/27 职场文书
啤酒节策划方案
2014/05/28 职场文书
市场营销策划方案
2014/06/11 职场文书
高中生国庆节演讲稿范文2014
2014/09/21 职场文书
导游词之井冈山
2019/11/20 职场文书
win11系统中dhcp服务异常什么意思? Win11 DHCP服务异常修复方法
2022/04/08 数码科技
WINDOWS下安装mysql 8.x 的方法图文教程
2022/04/19 MySQL