python实现堆栈与队列的方法


Posted in Python onJanuary 15, 2015

本文实例讲述了python实现堆栈与队列的方法。分享给大家供大家参考。具体分析如下:

1、python实现堆栈,可先将Stack类写入文件stack.py,在其它程序文件中使用from stack import Stack,然后就可以使用堆栈了。

stack.py的程序:

class Stack():  

    def __init__(self,size):  

        self.size=size;  

        self.stack=[];  

        self.top=-1;  

    def push(self,ele):  #入栈之前检查栈是否已满  

        if self.isfull():  

            raise exception("out of range");  

        else:  

            self.stack.append(ele);  

            self.top=self.top+1;  

    def pop(self):             # 出栈之前检查栈是否为空  

        if self.isempty():  

            raise exception("stack is empty");  

        else:  

            self.top=self.top-1;  

            return self.stack.pop();  

      

    def isfull(self):  

        return self.top+1==self.size;  

    def isempty(self):  

        return self.top==-1;

 
再写一个程序文件,stacktest.py,使用栈,内容如下:
 
#!/usr/bin/python   

from stack import Stack  

s=Stack(20);  

for i in range(3):  

    s.push(i);  

s.pop()  

print s.isempty();

2、python 实现队列:
class Queue():  

    def __init__(self,size):  

        self.size=size;  

        self.front=-1;  

        self.rear=-1;  

        self.queue=[];  

    def enqueue(self,ele):  #入队操作  

        if self.isfull():  

            raise exception("queue is full");  

        else:  

            self.queue.append(ele);  

            self.rear=self.rear+1;  

    def dequeue(self):      #出队操作  

        if self.isempty():  

            raise exception("queue is empty");  

        else:  

            self.front=self.front+1;  

            return self.queue[self.front];  

    def isfull(self):  

        return self.rear-self.front+1==self.size;  

    def isempty(self):  

        return self.front==self.rear;  

      

q=Queue(10);  

for i in range(3):  

    q.enqueue(i);  

print q.dequeue();  

print q.isempty();

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

Python 相关文章推荐
PyChar学习教程之自定义文件与代码模板详解
Jul 17 Python
Python 多进程并发操作中进程池Pool的实例
Nov 01 Python
使用Python进行QQ批量登录的实例代码
Jun 11 Python
python 保存float类型的小数的位数方法
Oct 17 Python
Python中创建二维数组
Oct 17 Python
python 自动重连wifi windows的方法
Dec 18 Python
Python面向对象程序设计多继承和多态用法示例
Apr 08 Python
Python实现生成密码字典的方法示例
Sep 02 Python
pytest中文文档之编写断言
Sep 12 Python
python目标检测给图画框,bbox画到图上并保存案例
Mar 10 Python
Python实现简单猜数字游戏
Feb 03 Python
python利用文件时间批量重命名照片和视频
Feb 09 Python
python多线程用法实例详解
Jan 15 #Python
Python中os.path用法分析
Jan 15 #Python
python静态方法实例
Jan 14 #Python
python继承和抽象类的实现方法
Jan 14 #Python
python列表操作实例
Jan 14 #Python
python操作gmail实例
Jan 14 #Python
Python中的装饰器用法详解
Jan 14 #Python
You might like
ThinkPHP实现批量删除数据的代码实例
2014/07/02 PHP
PHP中比较时间大小实例
2014/08/21 PHP
如何把php5.3版本升级到php5.4或者php5.5
2015/07/31 PHP
Laravel5.5 视图 - 创建视图和数据传递示例
2019/10/21 PHP
innerText和innerHTML 一些问题分析
2009/05/18 Javascript
JS判断元素为数字的奇异写法分享
2012/08/01 Javascript
下拉列表select 由左边框移动到右边示例
2013/12/04 Javascript
javascript设计模式之解释器模式详解
2014/06/05 Javascript
jQuery中delegate()方法用法实例
2015/01/19 Javascript
javascript中CheckBox全选终极方案
2015/05/20 Javascript
JavaScript+CSS实现仿Mootools竖排弹性动画菜单效果
2015/10/14 Javascript
jQuery插件开发精品教程让你的jQuery提升一个台阶
2016/01/27 Javascript
JavaScript 不支持 indexof 该如何解决
2016/03/30 Javascript
JavaScript比较当前时间是否在指定时间段内的方法
2016/08/02 Javascript
学习掌握JavaScript中this的使用技巧
2016/08/29 Javascript
最全面的百度地图JavaScript离线版开发
2016/09/10 Javascript
让浏览器崩溃的12行JS代码(DoS攻击分析及防御)
2016/10/10 Javascript
js实现右键自定义菜单
2016/12/03 Javascript
微信小程序 密码输入(源码下载)
2017/06/27 Javascript
使用react render props实现倒计时的示例代码
2018/12/06 Javascript
关于vue项目中搜索节流的实现代码
2019/09/17 Javascript
vue setInterval 定时器失效的解决方式
2020/07/30 Javascript
Python实现简单截取中文字符串的方法
2015/06/15 Python
Python实现计算最小编辑距离
2016/03/17 Python
深入理解python中的闭包和装饰器
2016/06/12 Python
Python 数据处理库 pandas 入门教程基本操作
2018/04/19 Python
pandas实现DataFrame显示最大行列,不省略显示实例
2019/12/26 Python
Pyecharts绘制全球流向图的示例代码
2020/01/08 Python
如何在python中实现线性回归
2020/08/10 Python
Bobbi Brown芭比波朗美国官网:化妆师专业彩妆保养品品牌
2016/08/18 全球购物
Sephora丝芙兰马来西亚官方网站:国际化妆品购物
2018/03/15 全球购物
导师工作推荐信范文
2014/05/17 职场文书
高考励志标语
2014/06/05 职场文书
学校中层领导培训心得体会
2016/01/11 职场文书
Python Pandas pandas.read_sql_query函数实例用法分析
2021/06/21 Python
spring 项目实现限流方法示例
2022/07/15 Java/Android