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中实现对list做减法操作介绍
Jan 09 Python
Linux下编译安装MySQL-Python教程
Feb 02 Python
Python3字符串学习教程
Aug 20 Python
python监控文件并且发送告警邮件
Jun 21 Python
python多线程并发让两个LED同时亮的方法
Feb 18 Python
基于Python实现大文件分割和命名脚本过程解析
Sep 29 Python
python入门之井字棋小游戏
Mar 05 Python
PyQt5实现画布小程序
May 30 Python
PyQt5 QDockWidget控件应用详解
Aug 12 Python
python 实现超级玛丽游戏
Nov 25 Python
微软开源最强Python自动化神器Playwright(不用写一行代码)
Jan 05 Python
Python基础教程,Python入门教程(超详细)
Jun 24 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
如何开发一个虚拟域名系统
2006/10/09 PHP
PHP中PDO的错误处理
2011/09/04 PHP
PHP fopen()和 file_get_contents()应用与差异介绍
2014/03/19 PHP
CI框架中zip类应用示例
2014/06/17 PHP
php中异常处理方法小结
2015/01/09 PHP
PHP Curl模拟登录微信公众平台、新浪微博实例代码
2016/01/28 PHP
script标签的 charset 属性使用说明
2010/12/04 Javascript
基于JQuery 的消息提示框效果代码
2011/07/31 Javascript
解决ExtJS在chrome或火狐中正常显示在ie中不显示的浏览器兼容问题
2013/01/11 Javascript
checkbox全选所涉及到的知识点介绍
2013/12/31 Javascript
判断一个对象是否为jquery对象的方法
2014/03/12 Javascript
JavaScript中的style.cssText使用教程
2014/11/06 Javascript
EasyUi datagrid 实现表格分页
2015/02/10 Javascript
60行js代码实现俄罗斯方块
2015/03/31 Javascript
JS+CSS实现仿触屏手机拨号盘界面及功能模拟完整实例
2015/05/16 Javascript
javascript 闭包详解
2015/07/02 Javascript
分享一些常用的jQuery动画事件和动画函数
2015/11/27 Javascript
js正则表达式最长匹配(贪婪匹配)和最短匹配(懒惰匹配)用法分析
2016/12/27 Javascript
Node.js+jade抓取博客所有文章生成静态html文件的实例
2017/09/19 Javascript
node.js遍历目录的方法示例
2018/08/01 Javascript
在 Angular6 中使用 HTTP 请求服务端数据的步骤详解
2018/08/06 Javascript
详解vuex之store源码简单解析
2019/06/13 Javascript
微信小程序实现购物车代码实例详解
2019/08/29 Javascript
关于Node.js中频繁修改代码重启服务器的问题
2020/10/15 Javascript
Python切片知识解析
2016/03/06 Python
python3.6 +tkinter GUI编程 实现界面化的文本处理工具(推荐)
2017/12/20 Python
Python OpenCV实现图片上输出中文
2018/01/22 Python
python匿名函数用法实例分析
2019/08/03 Python
python实现比对美团接口返回数据和本地mongo数据是否一致示例
2019/08/09 Python
Python+unittest+DDT实现数据驱动测试
2020/11/30 Python
宿舍违规检讨书
2014/01/12 职场文书
聚美优品恶搞广告词
2014/03/14 职场文书
团干部培训方案
2014/06/03 职场文书
个人查摆问题整改措施
2014/10/04 职场文书
乱丢垃圾袋检讨书
2014/10/08 职场文书
2016入党积极分子党课学习心得体会
2015/10/09 职场文书