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中使用列表生成式的教程
Apr 27 Python
Python实现约瑟夫环问题的方法
May 03 Python
Python常见加密模块用法分析【MD5,sha,crypt模块】
May 24 Python
快速入门python学习笔记
Dec 06 Python
urllib和BeautifulSoup爬取维基百科的词条简单实例
Jan 17 Python
python 列表,数组和矩阵sum的用法及区别介绍
Jun 28 Python
Python Opencv实现图像轮廓识别功能
Mar 23 Python
Python使用Slider组件实现调整曲线参数功能示例
Sep 06 Python
TensorFlow tf.nn.max_pool实现池化操作方式
Jan 04 Python
Python os库常用操作代码汇总
Nov 03 Python
python 逆向爬虫正确调用 JAR 加密逻辑
Jan 12 Python
对Pytorch 中的contiguous理解说明
Mar 03 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
图片存储与浏览一例(Linux+Apache+PHP+MySQL)
2006/10/09 PHP
浅析is_writable的php实现
2013/06/18 PHP
调试PHP程序的多种方法介绍
2014/11/06 PHP
百万级别知乎用户数据抓取与分析之PHP开发
2015/09/28 PHP
PHP+RabbitMQ实现消息队列的完整代码
2019/03/20 PHP
php无限极分类实现方法分析
2019/07/04 PHP
另类调用flash无须激活的方法
2006/12/27 Javascript
鼠标滑上去后图片放大浮出效果的js代码
2011/05/28 Javascript
缓动函数requestAnimationFrame 更好的实现浏览器经动画
2012/12/07 Javascript
php显示当前文件所在的文件以及文件夹所有文件以树形展开
2013/12/13 Javascript
js实现动态加载脚本的方法实例汇总
2015/11/02 Javascript
深入浅析同源策略和跨域访问
2015/11/26 Javascript
给easyui datebox扩展一个清空的实例
2016/11/09 Javascript
jQuery Validate验证表单时多个name相同的元素只验证第一个的解决方法
2016/12/24 Javascript
jQuery基于ajax操作json数据简单示例
2017/01/05 Javascript
Node.js和Express简单入门介绍
2017/03/24 Javascript
浅谈sass在vue注意的地方
2017/08/10 Javascript
基于js中document.cookie全面解析
2017/09/14 Javascript
在Vue中使用Echarts可视化库的完整步骤记录
2020/11/18 Vue.js
javascript实现放大镜功能
2020/12/09 Javascript
[02:58]魔廷新尊——痛苦女王至宝语音台词节选
2020/06/14 DOTA
Python脚本修改阿里云的访问控制列表的方法
2019/03/08 Python
Python FtpLib模块应用操作详解
2019/12/12 Python
Tensorflow中的dropout的使用方法
2020/03/13 Python
高性能装备提升营地:Kammok
2019/02/27 全球购物
党员活动日总结
2014/05/05 职场文书
意向书范本
2014/07/29 职场文书
解除劳动合同证明书
2014/09/26 职场文书
市委常委班子党的群众路线教育实践活动整改措施
2014/10/02 职场文书
资产运营委托书范本
2014/10/16 职场文书
护士长2014年度工作总结
2014/11/11 职场文书
销售工作决心书
2015/02/04 职场文书
第二次离婚起诉书
2015/05/18 职场文书
就业证明函
2015/06/17 职场文书
浅谈Laravel中使用Slack进行异常通知
2021/05/29 PHP
Golang并发工具Singleflight
2022/05/06 Golang