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实现的udp协议Server和Client代码实例
Jun 04 Python
在Python中利用Into包整洁地进行数据迁移的教程
Mar 30 Python
基于scrapy实现的简单蜘蛛采集程序
Apr 17 Python
Python的Django框架中消息通知的计数器实现教程
Jun 13 Python
Python中的数学运算操作符使用进阶
Jun 20 Python
python+pygame简单画板实现代码实例
Dec 13 Python
详解Python核心对象类型字符串
Feb 11 Python
Python cookbook(数据结构与算法)找到最大或最小的N个元素实现方法示例
Feb 13 Python
django连接oracle时setting 配置方法
Aug 29 Python
python3检查字典传入函数键是否齐全的实例
Jun 05 Python
python 字符串的驻留机制及优缺点
Jun 19 Python
python3列表删除大量重复元素remove()方法的问题详解
Jan 04 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 base64编码后解码乱码的解决办法
2014/06/19 PHP
JavaScipt基本教程之JavaScript语言的基础
2008/01/16 Javascript
实现局部遮罩与关闭原理及代码
2013/02/04 Javascript
javaScript面向对象继承方法经典实现
2013/08/20 Javascript
JS小功能(setInterval实现图片效果显示时间)实例代码
2013/11/28 Javascript
js图片实时加载提供网页打开速度
2014/09/11 Javascript
ECMAScript 6即将带给我们新的数组操作方法前瞻
2015/01/06 Javascript
Javascript无参数和有参数类继承问题解决方法
2015/03/02 Javascript
JavaScript中操作Mysql数据库实例
2015/04/02 Javascript
百度地图API之本地搜索与范围搜索
2015/07/30 Javascript
jQuery 的 ready()的纯js替代方法
2016/11/20 Javascript
微信小程序中使元素占满整个屏幕高度实现方法
2016/12/14 Javascript
原生js实现省市区三级联动代码分享
2018/02/12 Javascript
babel之配置文件.babelrc入门详解
2018/02/22 Javascript
微信小程序自定义组件实现环形进度条
2020/11/17 Javascript
Vue 实例事件简单示例
2019/09/19 Javascript
python正则表达式re模块详细介绍
2014/05/29 Python
python实现日常记账本小程序
2018/03/10 Python
keras绘制acc和loss曲线图实例
2020/06/15 Python
Python Tricks 使用 pywinrm 远程控制 Windows 主机的方法
2020/07/21 Python
Html5嵌入钉钉的实现示例
2020/06/04 HTML / CSS
香奈儿美国官网:CHANEL美国
2020/05/20 全球购物
shell程序中如何注释
2012/02/17 面试题
大学生职业生涯规划书模板
2014/01/03 职场文书
青年文明号服务承诺
2014/03/31 职场文书
亲属关系公证书
2014/04/08 职场文书
安全生产标语
2014/06/06 职场文书
党的群众路线教育实践活动对照检查材料(教师)
2014/09/24 职场文书
学雷锋献爱心活动总结
2015/05/11 职场文书
父亲去世追悼词
2015/06/23 职场文书
python实现自动化群控的步骤
2021/04/11 Python
Nginx实现高可用集群构建(Keepalived+Haproxy+Nginx)
2021/05/27 Servers
Java内存模型之happens-before概念详解
2021/06/13 Java/Android
vue+elementUI实现表格列的显示与隐藏
2022/04/13 Vue.js
html解决浏览器记住密码输入框的问题
2023/05/07 HTML / CSS
HTML5中的DOCUMENT.VISIBILITYSTATE属性详解
2023/05/07 HTML / CSS