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调用windows api锁定计算机示例
Apr 17 Python
Python标准库urllib2的一些使用细节总结
Mar 16 Python
python实现一次创建多级目录的方法
May 15 Python
在Django的视图(View)外使用Session的方法
Jul 23 Python
python正则表达式之作业计算器
Mar 18 Python
python 读取目录下csv文件并绘制曲线v111的方法
Jul 06 Python
在python环境下运用kafka对数据进行实时传输的方法
Dec 27 Python
django框架模板中定义变量(set variable in django template)的方法分析
Jun 24 Python
Python操作qml对象过程详解
Sep 26 Python
wxPython实现分隔窗口
Nov 19 Python
使用Keras 实现查看model weights .h5 文件的内容
Jun 09 Python
python em算法的实现
Oct 03 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
天津市收音机工业发展史
2021/03/04 无线电
php _autoload自动加载类与机制分析
2012/02/10 PHP
PHP读取文本文件并逐行输出该行使用最多的字符与对应次数的方法
2016/11/25 PHP
JS操作CSS随机改变网页背景实现思路
2014/03/10 Javascript
JS常用函数使用指南
2014/11/23 Javascript
javascript格式化json显示实例分析
2015/04/21 Javascript
javascript常用功能汇总
2015/07/05 Javascript
jquery插件tytabs.jquery.min.js实现渐变TAB选项卡效果
2015/08/25 Javascript
AngularJS实现按钮提示与点击变色效果
2016/09/07 Javascript
JavaScript的变量声明提升问题浅析(Hoisting)
2016/11/30 Javascript
Bootstrap源码解读按钮(5)
2016/12/23 Javascript
jQuery实现圣诞节礼物动画案例解析
2016/12/25 Javascript
使用vue点击li,获取当前点击li父辈元素的属性值方法
2018/09/12 Javascript
JS实现checkbox互斥(单选)功能示例
2019/05/04 Javascript
node实现mock-plugin中间件的方法
2019/12/25 Javascript
JavaScript 正则应用详解【模式、欲查、反向引用等】
2020/05/13 Javascript
vue实现图片裁剪后上传
2020/12/16 Vue.js
Python实现测试磁盘性能的方法
2015/03/12 Python
一个基于flask的web应用诞生 记录用户账户登录状态(6)
2017/04/11 Python
python3 unicode列表转换为中文的实例
2018/10/26 Python
python 用for循环实现1~n求和的实例
2019/02/01 Python
Python使用pandas和xlsxwriter读写xlsx文件的方法示例
2019/04/09 Python
python列表插入append(), extend(), insert()用法详解
2019/09/14 Python
使用python 将图片复制到系统剪贴中
2019/12/13 Python
HTML5 Canvas实现360度全景图的示例代码
2018/01/29 HTML / CSS
Java的接口和C++的虚类的相同和不同处
2014/03/27 面试题
会计实习自我鉴定
2013/12/04 职场文书
数学国培研修感言
2014/02/13 职场文书
高一学生期末评语
2014/04/25 职场文书
办理信用卡收入证明范例
2014/09/13 职场文书
2014年药房工作总结
2014/11/22 职场文书
2014年小学图书室工作总结
2014/12/09 职场文书
本溪关门山导游词
2015/02/09 职场文书
大学生,三分钟即兴演讲稿
2019/07/22 职场文书
Ruby使用Mysql2连接操作MySQL
2022/04/19 Ruby
Linux中一对多配置日志服务器的详细步骤
2022/07/23 Servers