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 相关文章推荐
VSCode下好用的Python插件及配置
Apr 06 Python
python中将一个全部为int的list 转化为str的list方法
Apr 09 Python
python简单操作excle的方法
Sep 12 Python
解决Shell执行python文件,传参空格引起的问题
Oct 30 Python
python 列表递归求和、计数、求最大元素的实例
Nov 28 Python
Python遍历文件夹 处理json文件的方法
Jan 22 Python
对python使用telnet实现弱密码登录的方法详解
Jan 26 Python
详解PANDAS 数据合并与重塑(join/merge篇)
Jul 09 Python
Python Django 封装分页成通用的模块详解
Aug 21 Python
Python OrderedDict的使用案例解析
Oct 25 Python
通过celery异步处理一个查询任务的完整代码
Nov 19 Python
Python干货实战之八音符酱小游戏全过程详解
Oct 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
php中将数组存到文件里的实现代码
2012/01/19 PHP
Codeigniter检测表单post数据的方法
2015/03/21 PHP
PHP基于接口技术实现简单的多态应用完整实例
2017/04/26 PHP
php检测mysql表是否存在的方法小结
2017/07/20 PHP
PHP使用正则表达式实现过滤非法字符串功能示例
2018/06/04 PHP
PHP从尾到头打印链表实例讲解
2018/09/27 PHP
基于JQuery的Pager分页器实现代码
2010/07/17 Javascript
js实现弹出窗口、页面变成灰色并不可操作的例子分享
2014/05/10 Javascript
深入nodejs中流(stream)的理解
2017/03/27 NodeJs
jquery在启动页面时,自动加载数据的实例
2018/01/22 jQuery
在vue项目中使用sass的配置方法
2018/03/20 Javascript
Java设计中的Builder模式的介绍
2018/03/22 Javascript
微信小程序绑定手机号获取验证码功能
2019/10/22 Javascript
Javascript异步流程控制之串行执行详解
2020/09/27 Javascript
Antd的table组件表格的序号自增操作
2020/10/27 Javascript
[46:47]2014 DOTA2国际邀请赛中国区预选赛5.21 LGD-CDEC VS NE
2014/05/22 DOTA
[03:02]辉夜杯主赛事第二日 每日之星
2015/12/27 DOTA
Fabric 应用案例
2016/08/28 Python
Python实现二维数组按照某行或列排序的方法【numpy lexsort】
2017/09/22 Python
python画一个玫瑰和一个爱心
2020/08/18 Python
详解django自定义中间件处理
2018/11/21 Python
Python 处理图片像素点的实例
2019/01/08 Python
Python嵌套式数据结构实例浅析
2019/03/05 Python
使用python分析统计自己微信朋友的信息
2019/07/19 Python
win10子系统python开发环境准备及kenlm和nltk的使用教程
2019/10/14 Python
Pandas —— resample()重采样和asfreq()频度转换方式
2020/02/26 Python
浅谈tensorflow使用张量时的一些注意点tf.concat,tf.reshape,tf.stack
2020/06/23 Python
Bose法国官网:购买耳机、扬声器、家庭影院、专业音响
2017/12/21 全球购物
我能否用void** 指针作为参数, 使函数按引用接受一般指针
2013/02/16 面试题
初一体育教学反思
2014/01/29 职场文书
开工仪式主持词
2014/03/20 职场文书
同居协议书范本
2014/04/23 职场文书
大班幼儿评语大全
2014/04/30 职场文书
小学运动会口号
2014/06/07 职场文书
大学生档案自我鉴定(2篇)
2014/10/14 职场文书