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实现爬虫设置代理IP和伪装成浏览器的方法分享
May 07 Python
在pyqt5中QLineEdit里面的内容回车发送的实例
Jun 21 Python
Python判断字符串是否xx开始或结尾的示例
Aug 08 Python
详解Python3 pandas.merge用法
Sep 05 Python
Python使用random模块生成随机数操作实例详解
Sep 17 Python
Django+uni-app实现数据通信中的请求跨域的示例代码
Oct 12 Python
numpy np.newaxis 的实用分享
Nov 30 Python
python psutil监控进程实例
Dec 17 Python
Python输出指定字符串的方法
Feb 06 Python
python 双循环遍历list 变量判断代码
May 04 Python
Python发送邮件实现基础解析
Aug 14 Python
Python自然语言处理之切分算法详解
Apr 25 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 正则 过滤html 的超链接
2009/06/02 PHP
PHP图像裁剪缩略裁切类源码及使用方法
2016/01/07 PHP
jQuery 使用手册(四)
2009/09/23 Javascript
JavaScript 模式之工厂模式(Factory)应用介绍
2012/11/15 Javascript
IE关闭时判断及AJAX注销案例学习
2013/02/18 Javascript
jquery事件重复绑定的快速解决方法
2014/01/03 Javascript
js获取光标位置和设置文本框光标位置示例代码
2014/01/09 Javascript
jQuery动画效果animate和scrollTop结合使用实例
2014/04/02 Javascript
jQuery实现字符串按指定长度加入特定内容的方法
2015/03/11 Javascript
jquery实现的蓝色二级导航条效果代码
2015/08/24 Javascript
jQuery+canvas实现简单的球体斜抛及颜色动态变换效果
2016/01/28 Javascript
IE8 内存泄露(内存一直增长 )的原因及解决办法
2016/04/06 Javascript
Js获取当前日期时间及格式化代码
2016/09/17 Javascript
jQuery纵向导航菜单效果实现方法
2016/12/19 Javascript
JS字符串长度判断,超出进行自动截取的实例(支持中文)
2017/03/06 Javascript
浅谈Node.js ORM框架Sequlize之表间关系
2017/07/24 Javascript
jQuery实现键盘回车搜索功能
2017/07/25 jQuery
jQuery实现的form转json经典示例
2017/10/10 jQuery
jQuery实现手机号正则验证输入及自动填充空格功能
2018/01/02 jQuery
zepto.js 实时监听输入框的方法
2018/12/04 Javascript
如何测量vue应用运行时的性能
2019/06/21 Javascript
微信小程序 调用远程接口 给全局数组赋值代码实例
2019/08/13 Javascript
layui 动态设置checbox 选中状态的例子
2019/09/02 Javascript
d3.js实现图形缩放平移
2019/12/19 Javascript
小程序组件传值和引入sass的方法(使用vant Weapp组件库)
2020/11/24 Javascript
Python实现读取TXT文件数据并存进内置数据库SQLite3的方法
2017/08/08 Python
Django添加feeds功能的示例
2018/08/07 Python
python单例模式实例解析
2018/08/28 Python
Python使用Pandas库实现MySQL数据库的读写
2019/07/06 Python
智利最大的网上商店:Linio智利
2016/11/24 全球购物
总裁助理岗位职责
2014/02/17 职场文书
初中作文评语
2014/12/25 职场文书
教师廉洁自律个人总结
2015/02/10 职场文书
教师思想工作总结2015
2015/05/13 职场文书
清明节随笔
2015/08/15 职场文书
基于Redis6.2.6版本部署Redis Cluster集群的问题
2022/04/01 Redis