Python如何实现堆栈和队列

缺乏、安全感 2024-03-31 05:33 148阅读 0赞

python实现堆栈

堆栈是一个后进先出的数据结构,其工作方式就像一堆汽车排队进去一个死胡同里面,最先进去的一定是最后出来。

我们可以设置一个类,用列表来存放栈中元素的信息,利用列表的append()和pop()方法可以实现栈的出栈pop和入栈push的操作,list.append(obj)意思是向列表添加一个对象obj,list.pop(index=-1)意思是删除指定位置的对象,默认是最后一个对象,也就是说list.pop(),是删除列表中下标最大的元素。可先将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()

  1. def isfull(self):
  2. return self.top+1==self.size
  3. def isempty(self):
  4. return self.top==-1
  • 1
  • 2
  • 3
  • 4

再写一个程序文件,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()

Python实现队列

队列是一种先进先出的数据类型,它的跟踪原理类似于在超市收银处排队,队列里的的第一个人首先接受服务,新的元素通过入队的方式添加到队列的末尾,而出队就是将队列的头元素删除。

我们可以设置一个类,用列表来存放栈中元素的信息,利用列表的append()和pop()方法可以实现队列的入队enqueue和出队dequeue的操作,上面栈一个元素每次出去是列表的最后一个,直接用list.pop()出栈,而出队列每次是第一个,所以要用list.pop(0)出队列

代码如下:

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+1self.size
def isempty(self):
return self.frontself.rear

q=Queue(10);
for i in range(3):
q.enqueue(i)
print q.dequeue()
print q.isempty()

转自:https://www.weidianyuedu.com

发表评论

表情:
评论列表 (有 0 条评论,148人围观)

还没有评论,来说两句吧...

相关阅读

    相关 【C++ STL 容器】——队列堆栈

    简介 队列和堆栈都是比较常用的数据结构。队列只允许在表的一端插入,在另一端删除,允许插入的一端叫做队尾,允许删除的一端叫做队头,是先进先出的线性表。栈允许在表的一端进行插

    相关 数据结构——堆栈队列

    堆栈和队列都是特殊的线性表,线性表、堆栈和队列三者的数据元素以及数据元素之间的逻辑关系完全相同。 差别:线性表的插入和删除操作不受任何限制,而堆栈只能在栈顶插入和删除,队列

    相关 PHP使用数组实现堆栈队列

    堆栈和队列是数据结构的两种实现形式,是使用非常广泛的存储数据的容器。下面呢,就分别讲下这两种容器在PHP中的应用: 一、使用数组实现堆栈:、 1、堆栈容器中,最后进栈的将会

    相关 堆栈队列实例

    堆栈:先进后出 队列:先进先出 日常生活中队列很常见。还有什么堆栈的典型例子? 夏天逛超市时,你可能会忍不住想喝一瓶冰饮料降降温。 可是,困扰你的是:放冰