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 相关文章推荐
Python命令行参数解析模块getopt使用实例
Apr 13 Python
python使用socket向客户端发送数据的方法
Apr 29 Python
详解Python中最难理解的点-装饰器
Apr 03 Python
python逆向入门教程
Jan 15 Python
NLTK 3.2.4 环境搭建教程
Sep 19 Python
Python实现批量执行同目录下的py文件方法
Jan 11 Python
Django 内置权限扩展案例详解
Mar 04 Python
selenium2.0中常用的python函数汇总
Aug 05 Python
python开头的coding设置方法
Aug 08 Python
Python内置类型性能分析过程实例
Jan 29 Python
Python图像处理库PIL的ImageGrab模块介绍详解
Feb 26 Python
总结Pyinstaller的坑及终极解决方法(小结)
Sep 21 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
php导出word文档与excel电子表格的简单示例代码
2014/03/08 PHP
php ci框架中加载css和js文件失败的原因及解决方法
2014/07/29 PHP
浅谈php7的重大新特性
2015/10/23 PHP
php is_writable判断文件是否可写实例代码
2016/10/13 PHP
javascript 学习之旅 (3)
2009/02/05 Javascript
关于window.pageYOffset和document.documentElement.scrollTop
2011/04/05 Javascript
JavaScript的strict模式与with关键字介绍
2014/02/08 Javascript
6种javascript显示当前系统时间代码
2015/12/01 Javascript
jquery实现图片预加载
2015/12/25 Javascript
Bootstrap笔记之缩略图、警告框实例详解
2017/03/09 Javascript
给vue项目添加ESLint的详细步骤
2017/09/29 Javascript
Bootstrap4如何定制自己的颜色和风格
2018/02/26 Javascript
vue.js input框之间赋值方法
2018/08/24 Javascript
解决webpack dev-server不能匹配post请求的问题
2018/08/24 Javascript
微信小程序实现左滑删除效果
2020/11/18 Javascript
[00:58]2016年国际邀请赛勇士令状宣传片
2016/06/01 DOTA
[55:35]VGJ.S vs Mski Supermajor小组赛C组 BO3 第二场 6.3
2018/06/04 DOTA
Python读取一个目录下所有目录和文件的方法
2016/07/15 Python
Python中 map()函数的用法详解
2018/07/10 Python
Python 通过打码平台实现验证码的实现
2019/05/13 Python
PYQT5实现控制台显示功能的方法
2019/06/25 Python
django迁移数据库错误问题解决
2019/07/29 Python
关于Keras模型可视化教程及关键问题的解决
2020/01/24 Python
Python实现疫情通定时自动填写功能(附代码)
2020/05/27 Python
matplotlib常见函数之plt.rcParams、matshow的使用(坐标轴设置)
2021/01/05 Python
顶级宝石首饰网络零售商:Angara
2016/10/25 全球购物
Canon佳能美国官方商店:购买数码相机、数码单反相机、镜头和打印机
2016/11/15 全球购物
仓库班组长岗位职责
2013/12/12 职场文书
外语系毕业生求职自荐信
2014/04/12 职场文书
中药学自荐信
2014/06/15 职场文书
统计学教授推荐信
2014/09/18 职场文书
2014年学校禁毒工作总结
2014/12/23 职场文书
考试作弊检讨书范文
2015/01/27 职场文书
入党个人总结范文
2015/03/02 职场文书
利用Python将list列表写入文件并读取的方法汇总
2022/03/25 Python
JS高级程序设计之class继承重点详解
2022/07/07 Javascript