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内置函数bin() oct()等实现进制转换
Dec 30 Python
python实现代码行数统计示例分享
Feb 10 Python
使用Python发送邮件附件以定时备份MySQL的教程
Apr 25 Python
python中sleep函数用法实例分析
Apr 29 Python
Python处理文本文件中控制字符的方法
Feb 07 Python
Python Pillow Image Invert
Jan 22 Python
python 寻找离散序列极值点的方法
Jul 10 Python
Python 继承,重写,super()调用父类方法操作示例
Sep 29 Python
Django 自动生成api接口文档教程
Nov 19 Python
tensorflow实现测试时读取任意指定的check point的网络参数
Jan 21 Python
python实现PCA降维的示例详解
Feb 24 Python
Pycharm添加虚拟解释器报错问题解决方案
Oct 13 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数组中包含中文的排序方法
2014/06/03 PHP
JavaScript浏览器选项卡效果
2010/08/25 Javascript
javascript 广告后加载,加载完页面再加载广告
2010/11/25 Javascript
浅析offsetLeft,Left,clientLeft之间的区别
2013/11/30 Javascript
js实现飞入星星特效代码
2014/10/17 Javascript
使表格的标题列可左右拉伸jquery插件封装
2014/11/24 Javascript
jQuery子属性过滤选择器用法分析
2015/02/10 Javascript
js数组与字符串常用方法总结
2017/01/13 Javascript
详解@Vue/Cli 3 Invalid Host header 错误解决办法
2019/01/02 Javascript
用js简单提供增删改查接口
2019/05/12 Javascript
详解微信小程序自定义组件的实现及数据交互
2019/07/22 Javascript
JS回调函数简单易懂的入门实例分析
2019/09/29 Javascript
解决vue 表格table列求和的问题
2019/11/06 Javascript
javascript实现商品图片放大镜
2019/11/28 Javascript
详解Vue3中对VDOM的改进
2020/04/23 Javascript
javascript实现移动端触屏拖拽功能
2020/07/29 Javascript
Python基于Tkinter实现的记事本实例
2015/06/17 Python
python向已存在的excel中新增表,不覆盖原数据的实例
2018/05/02 Python
Python统计纯文本文件中英文单词出现个数的方法总结【测试可用】
2018/07/25 Python
tensorflow实现简单逻辑回归
2018/09/07 Python
python获取中文字符串长度的方法
2018/11/14 Python
对IPython交互模式下的退出方法详解
2019/02/16 Python
Python测试模块doctest使用解析
2019/08/10 Python
Django框架 查询Extra功能实现解析
2019/09/04 Python
Python实现基于socket的udp传输与接收功能详解
2019/11/15 Python
python中shell执行知识点
2020/05/06 Python
详解CSS3中使用gradient实现渐变效果的方法
2015/08/18 HTML / CSS
西班牙多品牌鞋店连锁店:Krack
2018/11/30 全球购物
八年级生物教学反思
2014/01/22 职场文书
设备动力科岗位职责范本
2014/02/23 职场文书
淘宝客服专员岗位职责
2014/04/11 职场文书
我的未来不是梦演讲稿
2014/09/02 职场文书
十一国庆节“向国旗敬礼”主题班会活动方案
2014/09/27 职场文书
公司副总经理岗位职责
2015/04/08 职场文书
windows安装python超详细图文教程
2021/05/21 Python
Mysql表数据比较大情况下修改添加字段的方法实例
2022/06/28 MySQL