python实现堆栈与队列的方法

本文实例讲述了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实现堆栈与队列的方法的更多相关文章

  1. python实现堆栈和队列

    利用python列表实现堆栈和队列 堆栈: 堆栈是一个后进先出的数据结构,其工作方式就像生活中常见到的直梯,先进去的人肯定是最后出. 我们可以设置一个类,用列表来存放栈中的元素的信息,利用列表的app ...

  2. python实现堆栈、队列

    一.利用python列表实现堆栈和队列 堆栈: 堆栈是一个后进先出的数据结构,其工作方式就像生活中常见到的直梯,先进去的人肯定是最后出. 我们可以设置一个类,用列表来存放栈中的元素的信息,利用列表的a ...

  3. python学习笔记六——堆栈和队列

    4.2.3 列表的查找.排序.反转 list列表可以进行添加.删除操作,此外List列表还提供了查找元素的方法.list列表的查找提供了两种方式,一种是使用index方法返回元素在列表中的位置,另一种 ...

  4. python之对堆栈、队列处理操作(转载+个人看法)

    参考链接:https://blog.csdn.net/u010786109/article/details/40649827 python实现堆栈操作 堆栈是一个后进先出的数据结构,其工作方式就像一堆 ...

  5. 数据结构-堆栈和队列最简单的实现(Python实现)

    OK,上篇博客我们介绍了双向链表以及代码实现,这篇文章我们来学习堆栈和队列. 队.栈和链表一样,在数据结构中非常基础一种数据结构,同样他们也有各种各样.五花八门的变形和实现方式.但不管他们形式上怎么变 ...

  6. python语言的堆栈与队列类的实现

    基于python语言的数据结构之堆栈与队列的实现 # 堆栈的实现 # -*- coding: utf-8 -*- """ 栈(stack), 是一种容器,可以存入数据元素 ...

  7. JavaScript学习笔记之 数组方法一 堆栈 和队列

    数组的方法 以及 堆栈的操作的方法 JavaScript是一种弱类型语言,不像其它程序语言需要严格定义数据类型.在JavaScript中数组可以任意修改变动,这样也就出现了一个问题,如果边遍历数组边操 ...

  8. Java LinkedList特有方法程序小解 && 使用LinkedList 模拟一个堆栈或者队列数据结构。

    package Collection; import java.util.LinkedList; /* LinkedList:特有的方法 addFirst()/addLast(); getFirst( ...

  9. Effective Python之编写高质量Python代码的59个有效方法

                                                         这个周末断断续续的阅读完了<Effective Python之编写高质量Python代码 ...

随机推荐

  1. SpringBoot(十) -- Spring Data

    一.Spring Data简介 Spring Data 项目的目的是为了简化构建基于 Spring 框架应用的数据访问技术,包括非关系数据库.Map-Reduce 框架.云数据服务等等:另外也包含对关 ...

  2. 《剑指offer》面试题20 顺时针打印矩阵 Java版

    我的方法:遇到这种题最好在纸上画一画打印路线.我利用了4个标志left.top.right.bottom,表示当前需要打印的左界.上届.右界和下界,换句话说这些界线之外的已经打印了,如此一来判断结束的 ...

  3. RocksDB存储引擎测试

    一:安装搭建(两个节点都要安装) yum install http://www.percona.com/downloads/percona-release/redhat/0.1-4/percona-r ...

  4. EF添加关联的提示问题:映射从第 260 行开始的片段时有问题:

    一,EF添加关联的提示问题 严重性 代码 说明 项目 文件 行 禁止显示状态错误 错误 3004: 映射从第 260 行开始的片段时有问题:没有为 设置 T_xx_xxRelation 中的属性 T_ ...

  5. js—input框中输入数字,动态生成内容的方法

    项目中需要在前端实现: 用户输入数字n,动态生成n个元素,删除n,自动清空n个元素(如图一): 用户输入数字n,失焦生成n个元素,再聚焦修改n,自动清空n个元素(如图二): 图一: 图二: 需求一实现 ...

  6. IO流详解及测试代码

    IO流 (1)IO用于在设备间进行数据传输的操作 (2)分类:    A:流向       输入流 读取数据      输出流 写出数据   B:数据类型     字节流         字节输入流  ...

  7. 2019-3-6-WPF-使用-SharpDX

    title author date CreateTime categories WPF 使用 SharpDX lindexi 2019-03-06 16:52:37 +0800 2018-4-20 9 ...

  8. sqli(7)

    前言 第7关 导出文件GET字符型注入 步骤OK,但是就是不能写入文件,不知是文件夹的问题还是自己操作的问题.但是确实,没有导入成功. 1. 查看闭合,看源码,发现闭合是((‘ ’)): 2.查看所在 ...

  9. WEB服务动静结合

    基本介绍 1)WEB服务仅能处理静态请求,如果处理动态请求则需要对应的动态资源服务软件,即:应用程序服务软件 2)常见的应用服务软件有:PHP.Java.Python等 3)问题:WEB服务如何与外部 ...

  10. Linux架构之Rsync守护进程推和拉

    第三十三章 Rsync服务 33.1)Rsync基本概述 rsync是一款开源.快速.多功能.可实现全量及增量的本地或远程数据同步备份的优秀工具.rsync软件适用于Unix/linux/Window ...