Python算法之栈(stack)的实现


Posted in Python onAugust 18, 2014

本文以实例形式展示了Python算法中栈(stack)的实现,对于学习数据结构域算法有一定的参考借鉴价值。具体内容如下:

1.栈stack通常的操作:

Stack() 建立一个空的栈对象
push() 把一个元素添加到栈的最顶层
pop() 删除栈最顶层的元素,并返回这个元素
peek()  返回最顶层的元素,并不删除它
isEmpty()  判断栈是否为空
size()  返回栈中元素的个数

2.简单案例以及操作结果:

Stack Operation      Stack Contents   Return Value
 s.isEmpty()   []        True
 s.push(4)   [4] 
 s.push('dog')   [4,'dog'] 
 s.peek()   [4,'dog']    'dog'
 s.push(True)   [4,'dog',True] 
 s.size()   [4,'dog',True]   3
 s.isEmpty()   [4,'dog',True]   False
 s.push(8.4)   [4,'dog',True,8.4] 
 s.pop()       [4,'dog',True]   8.4
 s.pop()       [4,'dog']     True
 s.size()   [4,'dog']     2

这里使用python的list对象模拟栈的实现,具体代码如下:

#coding:utf8
class Stack:
  """模拟栈"""
  def __init__(self):
    self.items = []
    
  def isEmpty(self):
    return len(self.items)==0 
  
  def push(self, item):
    self.items.append(item)
  
  def pop(self):
    return self.items.pop() 
  
  def peek(self):
    if not self.isEmpty():
      return self.items[len(self.items)-1]
    
  def size(self):
    return len(self.items) 
s=Stack()
print(s.isEmpty())
s.push(4)
s.push('dog')
print(s.peek())
s.push(True)
print(s.size())
print(s.isEmpty())
s.push(8.4)
print(s.pop())
print(s.pop())
print(s.size())

感兴趣的读者可以动手测试一下本文所述实例代码,相信会对大家学习Python能有一定的收获。

Python 相关文章推荐
python爬虫入门教程之点点美女图片爬虫代码分享
Sep 02 Python
Python文件去除注释的方法
May 25 Python
在Ubuntu系统下安装使用Python的GUI工具wxPython
Feb 18 Python
Python3连接MySQL(pymysql)模拟转账实现代码
May 24 Python
基于Python 的进程管理工具supervisor使用指南
Sep 18 Python
python 3.6 +pyMysql 操作mysql数据库(实例讲解)
Dec 20 Python
python版本的仿windows计划任务工具
Apr 30 Python
基于Python pip用国内镜像下载的方法
Jun 12 Python
Python3用tkinter和PIL实现看图工具
Jun 21 Python
python 实现GUI(图形用户界面)编程详解
Jul 17 Python
如何使用Python破解ZIP或RAR压缩文件密码
Jan 09 Python
浅谈Python的方法解析顺序(MRO)
Mar 05 Python
Python实现partial改变方法默认参数
Aug 18 #Python
Python实现发送email的几种常用方法
Aug 18 #Python
Python内置数据类型详解
Aug 18 #Python
Python3基础之输入和输出实例分析
Aug 18 #Python
一个计算身份证号码校验位的Python小程序
Aug 15 #Python
基于Python的身份证号码自动生成程序
Aug 15 #Python
Python异常处理总结
Aug 15 #Python
You might like
如何使用PHP中的字符串函数
2006/10/09 PHP
粗略计算在线时间,bug:ip相同
2006/12/09 PHP
php FLEA中二叉树数组的遍历输出
2012/09/26 PHP
PHP.ini中配置屏蔽错误信息显示和保存错误日志的例子
2014/05/12 PHP
yii2超好用的日期组件和时间组件
2016/05/05 PHP
深入理解PHP之OpCode原理详解
2016/06/01 PHP
写了一个layout,拖动条连贯,内容区可为iframe
2007/08/19 Javascript
JavaScript Event学习第八章 事件的顺序
2010/02/07 Javascript
javascript取消文本选定的实现代码
2010/11/14 Javascript
JS判断页面加载状态以及添加遮罩和缓冲动画的代码
2012/10/11 Javascript
js onload处理html页面加载之后的事件
2013/10/30 Javascript
在Google 地图上实现做的标记相连接
2015/01/05 Javascript
jQuery的bind()方法使用详解
2015/07/15 Javascript
js添加千分位的实现代码(超简单)
2016/08/01 Javascript
微信小程序 scroll-view的使用案例代码详解
2020/06/11 Javascript
使用Python的判断语句模拟三目运算
2015/04/24 Python
Python中的__slots__示例详解
2017/07/06 Python
Django 响应数据response的返回源码详解
2019/08/06 Python
python GUI库图形界面开发之PyQt5复选框控件QCheckBox详细使用方法与实例
2020/02/28 Python
解决pyPdf和pyPdf2在合并pdf时出现异常的问题
2020/04/03 Python
jupyter 中文乱码设置编码格式 避免控制台输出的解决
2020/04/20 Python
Python错误的处理方法
2020/06/23 Python
Python操作Word批量生成合同的实现示例
2020/08/28 Python
CSS3 实现footer 固定在底部(无论页面多高始终在底部)
2019/10/15 HTML / CSS
新西兰最大、占有率最高的综合性药房:PharmacyDirect药房中文网
2020/11/03 全球购物
linux面试题参考答案(10)
2013/11/04 面试题
小区消防演习方案
2014/02/21 职场文书
决心书范文
2014/03/11 职场文书
低碳生活的宣传标语
2014/06/23 职场文书
关于读书的演讲稿300字
2014/08/27 职场文书
医院领导班子整改方案
2014/10/01 职场文书
村主任个人对照检查材料
2014/10/01 职场文书
酒店辞职书怎么写
2015/02/26 职场文书
2019七夕节祝福语36句,快来收藏吧
2019/08/06 职场文书
Python opencv缺陷检测的实现及问题解决
2021/04/24 Python
Requests什么的通通爬不了的Python超强反爬虫方案!
2021/05/20 Python