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查看微信好友是否删除自己
Dec 19 Python
简单实现python聊天程序
Apr 01 Python
Django使用Mysql数据库已经存在的数据表方法
May 27 Python
对python csv模块配置分隔符和引用符详解
Dec 12 Python
Python学习笔记之抓取某只基金历史净值数据实战案例
Jun 03 Python
python Django的web开发实例(入门)
Jul 31 Python
使用Python调取任意数字资产钱包余额功能
Aug 15 Python
如何基于Python创建目录文件夹
Dec 31 Python
Jupyter Notebook打开任意文件夹操作
Apr 14 Python
tensorflow安装成功import tensorflow 出现问题
Apr 16 Python
Python参数传递机制传值和传引用原理详解
May 22 Python
python输入中文的实例方法
Sep 14 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 查找字符串常用函数介绍
2012/06/07 PHP
php+js实现图片的上传、裁剪、预览、提交示例
2013/08/27 PHP
php去除HTML标签实例
2013/11/06 PHP
一个基于phpQuery的php通用采集类分享
2014/04/09 PHP
PHP中使用Imagick操作PSD文件实例
2015/01/26 PHP
使用PHP+AJAX让WordPress动态加载文章的教程
2015/12/11 PHP
Yii2中DropDownList简单用法示例
2016/07/18 PHP
在Thinkphp中使用ajax实现无刷新分页的方法
2016/10/25 PHP
数据结构之利用PHP实现二分搜索树
2020/10/25 PHP
Mootools 1.2教程(3) 数组使用简介
2009/09/14 Javascript
js获取url参数代码实例分享(JS操作URL)
2013/12/13 Javascript
基于javascript实现图片滑动效果
2016/05/07 Javascript
微信小程序  简单实例(阅读器)的实例开发
2016/09/29 Javascript
浅谈键盘上回车按钮的js触发事件
2017/02/13 Javascript
jQuery插件FusionCharts实现的2D面积图效果示例【附demo源码下载】
2017/03/06 Javascript
ES6新特性之类(Class)和继承(Extends)相关概念与用法分析
2017/05/24 Javascript
浅谈js获取ModelAndView值的问题
2018/03/28 Javascript
一个Vue页面的内存泄露分析详解
2018/06/25 Javascript
JS实现图片上传多次上传同一张不生效的处理方法
2018/08/06 Javascript
Vue组件通信入门之Provide和Inject机制
2019/12/29 Javascript
vue vantUI tab切换时 list组件不触发load事件的问题及解决方法
2020/02/14 Javascript
如何在vue中使用HTML 5 拖放API
2021/01/14 Vue.js
Python开发实例分享bt种子爬虫程序和种子解析
2014/05/21 Python
python字符串连接的N种方式总结
2014/09/17 Python
Python实现字符串逆序输出功能示例
2017/06/24 Python
python中列表和元组的区别
2017/12/18 Python
Python数据存储之 h5py详解
2019/12/26 Python
Pytorch实现基于CharRNN的文本分类与生成示例
2020/01/08 Python
伦敦一家非常流行的时尚精品店:Oxygen Boutique
2017/01/15 全球购物
中层干部岗位职责
2013/12/18 职场文书
监督检查工作方案
2014/05/28 职场文书
2014年妇女工作总结
2014/12/06 职场文书
因身体原因离职的辞职信范文
2015/05/12 职场文书
Linux安装apache服务器的配置过程
2021/11/27 Servers
淡雅古典唯美少女娇媚宁静迷人写真
2022/03/21 杂记
Python中的嵌套循环详情
2022/03/23 Python