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 调用VC++的动态链接库(DLL)
Sep 06 Python
python读文件逐行处理的示例代码分享
Dec 27 Python
Python之eval()函数危险性浅析
Jul 03 Python
python实现简单登陆流程的方法
Apr 22 Python
matplotlib subplots 设置总图的标题方法
May 25 Python
pyqt5的QComboBox 使用模板的具体方法
Sep 06 Python
python 循环读取txt文档 并转换成csv的方法
Oct 26 Python
wxpython实现按钮切换界面的方法
Nov 19 Python
Macbook安装Python最新版本、GUI开发环境、图像处理、视频处理环境详解
Feb 17 Python
Python实现aes加密解密多种方法解析
May 15 Python
python中有函数重载吗
May 28 Python
Python中猜拳游戏与猜筛子游戏的实现方法
Sep 04 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实现Ftp用户的在线管理的代码
2007/03/06 PHP
php检查字符串中是否有外链的方法
2015/07/29 PHP
jValidate 基于jQuery的表单验证插件
2009/12/12 Javascript
基于jQuery的简单的列表导航菜单
2011/03/02 Javascript
windows系统下简单nodejs安装及环境配置
2013/01/08 NodeJs
面向对象继承实例(a如何继承b问题)(自写)
2013/07/01 Javascript
jquery实现checkbox全选全不选的简单实例
2013/12/31 Javascript
jquery复选框checkbox实现删除前判断
2014/04/20 Javascript
Jquery实现瀑布流布局(备有详细注释)
2015/07/31 Javascript
jquery插件jquery.confirm弹出确认消息
2015/12/22 Javascript
JS 调试中常见的报错问题解决方法
2017/05/20 Javascript
详解jquery插件jquery.viewport.js学习使用方法
2017/09/08 jQuery
vue根据值给予不同class的实例
2018/09/29 Javascript
Element Input输入框的使用方法
2020/07/26 Javascript
Openlayers显示瓦片网格信息的方法
2020/09/28 Javascript
Python 中 list 的各项操作技巧
2017/04/13 Python
Django Admin 实现外键过滤的方法
2017/09/29 Python
Django rest framework实现分页的示例
2018/05/24 Python
对python中Json与object转化的方法详解
2018/12/31 Python
使用Python的SymPy库解决数学运算问题的方法
2019/03/27 Python
Pycharm如何运行.py文件的方法步骤
2020/03/03 Python
Python日志:自定义输出字段 json格式输出方式
2020/04/27 Python
最简单的matplotlib安装教程(小白)
2020/07/28 Python
纯CSS实现预加载动画效果
2017/09/06 HTML / CSS
HTML5 HTMLCollection和NodeList的区别详解
2020/04/29 HTML / CSS
乐高奥地利官方商店:LEGO Shop AT
2019/07/16 全球购物
最新结婚典礼主持词
2014/03/14 职场文书
一岗双责责任书
2014/04/15 职场文书
计划生育证明书写要求
2014/09/17 职场文书
群众路线个人自我剖析材料
2014/10/07 职场文书
高一军训口号
2015/12/25 职场文书
创业计划书之婴幼儿游泳馆
2019/09/11 职场文书
2019幼儿园感恩节活动策划书
2019/11/28 职场文书
Python如何解决secure_filename对中文不支持问题
2021/07/16 Python
OpenCV绘制圆端矩形的示例代码
2021/08/30 Python
python多线程方法详解
2022/01/18 Python