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. Lpl and Energy-saving Lamps

    During tea-drinking, princess, amongst other things, asked why has such a good-natured and cute Drag ...

  2. 一键生成APK

    傻瓜式的生成APK网址:https://www.appbsl.com/ 第一步 第二步 第三步 第四步

  3. 初学css 行内元素与块级元素

    行内元素与块级元素直观上的区别 1.行内元素会在一条直线上排列,都是同一行的,水平方向排列块级元素各占据一行,垂直方向排列.块级元素从新行开始结束接着一个断行. 2.块级元素可以包含行内元素和块级元素 ...

  4. 20191115PHP cookie登入实例

    首先是登入页面 <form action="" method="post"> <input type="text" nam ...

  5. vue项目中使用高德地图(根据坐标定位点)

    前言 项目中需要根据坐标定位,将自己的实现过程写下来,废话不多说,上代码 正文 <script> var map,marker; export default { data(){ retu ...

  6. ASE Code Search

    重现基线模型 Hamel's model 基线模型原理 如何实现semantic search?在已有数据库的基础上,衡量一个句子和每段代码的相关性再进行排序,选出最优代码片段即可实现一个通用的cod ...

  7. 第一次写的MySQLHelper

    一. 第一次写MysqlHelper,用来管理城市的数据库 二.MySQLHelper源代码 using MySql.Data.MySqlClient; using System; using Sys ...

  8. c++函数参数或返回值为函数指针

    C++中函数指针的形式为:返回值类型 + 参数类型,函数没有值类型,但是却可以声明函数的指针,因为函数是可寻址的,存放在内存中的代码段,可以从指针访问. 函数指针可以声明为: void (*pF)(v ...

  9. RabbitMQ走过的坑,发送的消息是乱码

    发送的消息在可视化界面中是乱码,如图: 看见这个content_tpye没有,是不是很奇怪,就是这个坑,设置下就行,看代码: @Bean Jackson2JsonMessageConverter me ...

  10. git点滴

    git指定版本,SHA-1短的,长的都可以 git checkout c66a9be git checkout c66a9befsadf1sdf1s3fd21 git log ##查询本地log gi ...