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 相关文章推荐
linux系统使用python监测网络接口获取网络的输入输出
Jan 15 Python
Python collections模块实例讲解
Apr 07 Python
Python编程入门的一些基本知识
May 13 Python
详解Python 模拟实现生产者消费者模式的实例
Aug 10 Python
Python3.x对JSON的一些操作示例
Sep 01 Python
python中装饰器级连的使用方法示例
Sep 29 Python
python TCP Socket的粘包和分包的处理详解
Feb 09 Python
python实现比较文件内容异同
Jun 22 Python
python监测当前联网状态并连接的实例
Dec 18 Python
什么是Python中的匿名函数
Jun 02 Python
Python通过format函数格式化显示值
Oct 17 Python
用python批量解压带密码的压缩包
May 31 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
附件名前加网站名
2008/03/23 PHP
IE浏览器兼容Firefox的JS脚本的代码
2008/10/23 Javascript
JS 密码强度验证(兼容IE,火狐,谷歌)
2010/03/15 Javascript
JS基础之undefined与null的区别分析
2011/08/08 Javascript
加载列表时jquery获取ul中第一个li的属性
2014/11/02 Javascript
JavaScript事件委托实例分析
2015/05/26 Javascript
原生js实现autocomplete插件
2016/04/14 Javascript
JS原型对象的创建方法详解
2016/06/16 Javascript
js判断checkbox是否选中个数的方法(超简单)
2016/08/19 Javascript
KnockoutJS 3.X API 第四章之数据控制流component绑定
2016/10/10 Javascript
jQuery与JavaScript节点创建方法的对比
2016/11/18 Javascript
vue+vuex+axio从后台获取数据存入vuex实现组件之间共享数据
2017/04/22 Javascript
Node.js中多进程模块Cluster的介绍与使用
2017/05/27 Javascript
js评分组件使用详解
2017/06/06 Javascript
jQuery动态添加li标签并添加属性和绑定事件方法
2018/02/24 jQuery
Bootstrap table表格初始化表格数据的方法
2018/07/25 Javascript
2种在vue项目中使用百度地图的简单方法
2018/09/28 Javascript
使用vue 国际化i18n 实现多实现语言切换功能
2018/10/11 Javascript
Echart折线图手柄触发事件示例详解
2018/12/16 Javascript
浅析Angular 实现一个repeat指令的方法
2019/07/21 Javascript
javascript实现点击按钮切换轮播图功能
2020/09/23 Javascript
Python中类的继承代码实例
2014/10/28 Python
实例探究Python以并发方式编写高性能端口扫描器的方法
2016/06/14 Python
详谈python read readline readlines的区别
2017/09/22 Python
Python实现通讯录功能
2018/02/22 Python
python pandas模块基础学习详解
2019/07/03 Python
使用python模拟命令行终端的示例
2019/08/13 Python
Win10+GPU版Pytorch1.1安装的安装步骤
2019/09/27 Python
解决Python 异常TypeError: cannot concatenate 'str' and 'int' objects
2020/04/08 Python
使用CSS3的appearance属性改变元素的外观的方法
2015/12/12 HTML / CSS
高中同学聚会邀请函
2014/01/11 职场文书
八年级生物教学反思
2014/01/22 职场文书
财务担保书范文
2014/04/02 职场文书
工厂仓管员岗位职责
2015/04/01 职场文书
离职证明范本
2015/06/12 职场文书
MySQL中你可能忽略的COLLATION实例详解
2021/05/12 MySQL