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 相关文章推荐
pyv8学习python和javascript变量进行交互
Dec 04 Python
Django静态资源URL STATIC_ROOT的配置方法
Nov 08 Python
python批量修改文件编码格式的方法
May 31 Python
Python使用pymongo模块操作MongoDB的方法示例
Jul 20 Python
对python3 中方法各种参数和返回值详解
Dec 15 Python
Python 读取串口数据,动态绘图的示例
Jul 02 Python
tensorflow之变量初始化(tf.Variable)使用详解
Feb 06 Python
通过Python扫描代码关键字并进行预警的实现方法
May 24 Python
python3从网络摄像机解析mjpeg http流的示例
Nov 13 Python
Ubuntu16安装Python3.9的实现步骤
Dec 15 Python
python中zip()函数遍历多个列表方法
Feb 18 Python
python计算列表元素与乘积详情
Aug 05 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防注入安全代码
2008/04/09 PHP
使用PHP实现Mysql读写分离
2013/06/28 PHP
php实现的zip文件内容比较类
2014/09/24 PHP
深入浅出讲解:php的socket通信原理
2016/12/03 PHP
php 下 html5 XHR2 + FormData + File API 上传文件操作实例分析
2020/02/28 PHP
在textarea中显示html页面的javascript代码
2007/04/20 Javascript
基于jQuery的模仿新浪微博时间的组件
2011/10/04 Javascript
document.getElementById获取控件对象为空的解决方法
2013/11/20 Javascript
js限制文本框只能输入数字方法小结
2014/06/16 Javascript
JS动态修改iframe内嵌网页地址的方法
2015/04/01 Javascript
js转html实体的方法
2016/09/27 Javascript
js微信扫描二维码登录网站技术原理
2016/12/01 Javascript
JS敏感词过滤代码
2016/12/23 Javascript
Express框架之connect-flash详解
2017/05/31 Javascript
jQuery用户头像裁剪插件cropbox.js使用详解
2017/06/07 jQuery
基于构造函数的五种继承方法小结
2017/07/27 Javascript
JS实现简单随机3D骰子
2019/10/24 Javascript
解决vue net :ERR_CONNECTION_REFUSED报错问题
2020/08/13 Javascript
解决idea开发遇到javascript动态添加html元素时中文乱码的问题
2020/09/29 Javascript
[02:24]DOTA2痛苦女王 英雄基础教程
2013/11/26 DOTA
[48:39]Ti4主赛事胜者组第一天 EG vs NEWBEE 2
2014/07/19 DOTA
Python多线程编程简单介绍
2015/04/13 Python
Python基础篇之初识Python必看攻略
2016/06/23 Python
简单谈谈python中的lambda表达式
2018/01/19 Python
python 字典中取值的两种方法小结
2018/08/02 Python
CentOS 7下安装Python3.6 及遇到的问题小结
2018/11/08 Python
python读取txt文件中特定位置字符的方法
2018/12/24 Python
Python可迭代对象操作示例
2019/05/07 Python
python3中rank函数的用法
2019/11/27 Python
Python网页解析器使用实例详解
2020/05/30 Python
通过Python实现Payload分离免杀过程详解
2020/07/13 Python
Python字符串函数strip()原理及用法详解
2020/07/23 Python
HTML5 Canvas实现烟花绽放特效
2016/03/02 HTML / CSS
HTML5 解决苹果手机不能自动播放音乐问题
2017/12/27 HTML / CSS
美国男士内衣品牌:Tommy John
2017/12/22 全球购物
鲜花方阵解说词
2014/02/13 职场文书