Python实现基本数据结构中栈的操作示例


Posted in Python onDecember 04, 2017

本文实例讲述了Python实现基本数据结构中栈的操作。分享给大家供大家参考,具体如下:

#! /usr/bin/env python
#coding=utf-8
#Python实现基本数据结构---栈操作
class Stack(object):
  def __init__(self,size):
    self.size = size
    self.stack = []
    self.top = 0#初始化,top=0时则为空栈
  def push(self,x):
    if self.stackFull():#进栈之前检查栈是否已满
      raise Exception("overflow !")
    else:
      self.stack.append(x)
      self.top=self.top+1#push进去的第一个元素下标为1
  def pop(self):
    if self.stackEmpty():
      raise Exception("underflow !")
    else:
      self.top=self.top-1
      return self.stack.pop()#利用Python内建函数pop()实现弹出
  def stackEmpty(self):
    if self.top == 0:#判断栈空
      return True
    else:
      return False
  def stackFull(self):
    if self.top == self.size:#判断栈满!!!
      return True
    else:
      return False
if __name__ == '__main__':
  print "三水点靠木测试结果:"
  s=Stack(10)
  for i in range(3):
    s.push(i)
  print s.stack
  print s.pop()
  print s.stack
  print s.pop()
  print s.pop()
  print s.stack
  print s.stackEmpty()
  print s.stackFull()
  for i in range(10):
    s.push(i)
  print s.stackFull()

运行结果:

Python实现基本数据结构中栈的操作示例

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
Python的高级Git库 Gittle
Sep 22 Python
使用Python解析JSON数据的基本方法
Oct 15 Python
浅谈python中scipy.misc.logsumexp函数的运用场景
Jun 23 Python
python自动裁剪图像代码分享
Nov 25 Python
pandas DataFrame实现几列数据合并成为新的一列方法
Jun 08 Python
python使用ddt过程中遇到的问题及解决方案【推荐】
Oct 29 Python
python reverse反转部分数组的实例
Dec 13 Python
解决Python中list里的中文输出到html模板里的问题
Dec 17 Python
Python设计模式之观察者模式原理与用法详解
Jan 16 Python
对python中arange()和linspace()的区别说明
May 03 Python
PyTorch中clone()、detach()及相关扩展详解
Dec 09 Python
PyTorch 如何自动计算梯度
May 23 Python
Python实现多进程共享数据的方法分析
Dec 04 #Python
Python数据结构之栈、队列的实现代码分享
Dec 04 #Python
关于Python数据结构中字典的心得
Dec 04 #Python
python Flask实现restful api service
Dec 04 #Python
浅谈Python中带_的变量或函数命名
Dec 04 #Python
Python中对象的引用与复制代码示例
Dec 04 #Python
Python3 Random模块代码详解
Dec 04 #Python
You might like
用windows下编译过的eAccelerator for PHP 5.1.6实现php加速的使用方法
2007/09/30 PHP
php学习之简单计算器实现代码
2011/06/09 PHP
PHP中通过语义URL防止网站被攻击的方法分享
2011/09/08 PHP
十大使用PHP框架的理由
2015/09/26 PHP
PHP简单计算两个时间差的方法示例
2017/06/20 PHP
laravel 操作数据库常用函数的返回值方法
2019/10/11 PHP
Prototype使用指南之form.js
2007/01/10 Javascript
js 函数的执行环境和作用域链的深入解析
2009/11/01 Javascript
关于跨站脚本攻击问题
2011/12/22 Javascript
鼠标拖动实现DIV排序示例代码
2013/10/14 Javascript
JS实现网页上随机产生超链接地址的方法
2015/11/09 Javascript
JavaScript简单获取页面图片原始尺寸的方法
2016/06/21 Javascript
深入理解bootstrap框架之入门准备
2016/10/09 Javascript
详解Web使用webpack构建前端项目
2017/09/23 Javascript
vue中选项卡点击切换且能滑动切换功能的实现代码
2018/11/25 Javascript
详解在网页上通过JS实现文本的语音朗读
2019/03/28 Javascript
bootstrap中的导航条实例代码详解
2019/05/20 Javascript
redux.js详解及基本使用
2019/05/24 Javascript
[03:00]DOTA2-DPC中国联赛1月18日Recap集锦
2021/03/11 DOTA
Python获取文件所在目录和文件名的方法
2017/01/12 Python
Queue 实现生产者消费者模型(实例讲解)
2017/11/13 Python
如何用Python实现简单的Markdown转换器
2018/07/16 Python
python入门:这篇文章带你直接学会python
2018/09/14 Python
Python可迭代对象操作示例
2019/05/07 Python
python读取图片的方式,以及将图片以三维数组的形式输出方法
2019/07/03 Python
Python rabbitMQ如何实现生产消费者模式
2020/08/24 Python
Scholastic父母商店:儿童书籍
2017/01/01 全球购物
英国最大的电子零件及配件零售商:Partmaster
2017/04/24 全球购物
俄罗斯珠宝市场的领导者之一:Бронницкий ювелир
2019/10/02 全球购物
先进班级集体事迹材料
2014/01/30 职场文书
幼儿园毕业园长感言
2014/02/24 职场文书
党员三严三实对照检查材料
2014/10/13 职场文书
文员岗位职责范本
2015/04/16 职场文书
2016年第二十届“母亲节暨幸福工程救助贫困母亲活动日”活动总结
2016/04/06 职场文书
MySQL学习总结-基础架构概述
2021/04/05 MySQL
Redis高并发缓存架构性能优化
2022/05/15 Redis