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 相关文章推荐
SublimeText 2编译python出错的解决方法(The system cannot find the file specified)
Nov 27 Python
python获取网页中所有图片并筛选指定分辨率的方法
Mar 31 Python
python实现逆序输出一个数字的示例讲解
Jun 25 Python
pandas DataFrame 删除重复的行的实现方法
Jan 29 Python
详解python播放音频的三种方法
Sep 23 Python
python、PyTorch图像读取与numpy转换实例
Jan 13 Python
Python 安装 virturalenv 虚拟环境的教程详解
Feb 21 Python
设置jupyter中DataFrame的显示限制方式
Apr 12 Python
如何通过Python3和ssl实现加密通信功能
May 09 Python
python网络编程之五子棋游戏
May 14 Python
python 负数取模运算实例
Jun 03 Python
UI自动化定位常用实现方法代码示例
Oct 27 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出错界面
2006/10/09 PHP
整理的9个实用的PHP库简介和下载
2010/11/09 PHP
Apache实现Web Server负载均衡详解(不考虑Session版)
2013/07/05 PHP
JS中的public和private对象,即static修饰符
2012/01/18 Javascript
JQuery打造省市下拉框联动效果
2014/05/18 Javascript
fastclick插件导致日期(input[type="date"])控件无法被触发该如何解决
2015/11/09 Javascript
jquery实现倒计时功能
2015/12/28 Javascript
深入理解JavaScript函数参数(推荐)
2016/07/26 Javascript
jQuery web 组件 后台日历价格、库存设置的代码
2016/10/14 Javascript
Vue.js实现无限加载与分页功能开发
2016/11/03 Javascript
ElementUI之Message功能拓展详解
2019/10/18 Javascript
对vue中的事件穿透与禁止穿透实例详解
2019/10/28 Javascript
TypeScript 引用资源文件后提示找不到的异常处理技巧
2020/07/15 Javascript
VUE中setTimeout和setInterval自动销毁案例
2020/09/07 Javascript
举例简单讲解Python中的数据存储模块shelve的用法
2016/03/03 Python
Windows安装Python、pip、easy_install的方法
2017/03/05 Python
Python 2.x如何设置命令执行的超时时间实例
2017/10/19 Python
通过Python 接口使用OpenCV的方法
2018/04/02 Python
PyQt5每天必学之拖放事件
2020/08/27 Python
Python DataFrame一列拆成多列以及一行拆成多行
2019/08/06 Python
python列表插入append(), extend(), insert()用法详解
2019/09/14 Python
Python 如何优雅的将数字转化为时间格式的方法
2019/09/26 Python
Python闭包及装饰器运行原理解析
2020/06/17 Python
keras 多任务多loss实例
2020/06/22 Python
css3实现针线缝合效果(图解步骤)
2013/02/04 HTML / CSS
25道Java面试题集合
2013/05/21 面试题
长辈证婚人证婚词
2014/01/09 职场文书
宿舍标语大全
2014/06/19 职场文书
领导干部“四风”查摆问题个人整改措施
2014/10/28 职场文书
2014年个人工作总结报告
2014/11/27 职场文书
2016年寒假社会实践活动总结
2015/03/27 职场文书
2015年幼师工作总结
2015/04/28 职场文书
导游词之云南丽江古城
2019/09/17 职场文书
java解析XML详解
2021/07/09 Java/Android
一篇文章弄懂Python中的内建函数
2021/08/07 Python
Windows 11要来了?微软文档揭示Win11太阳谷 / Win10有两个不同版本
2021/11/21 数码科技