本文实例讲述了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;
#!/usr/bin/python from stack import Stack s=Stack(20); for i in range(3): s.push(i); s.pop() print s.isempty();
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程序设计有所帮助。
本文向大家介绍JS实现队列与堆栈的方法,包括了JS实现队列与堆栈的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了JS实现队列与堆栈的方法。分享给大家供大家参考,具体如下: 在面向对象的程序设计里,一般都提供了实现队列(queue)和堆栈(stack)的方法,而对于JS来说,我们可以实现数组的相关操作,来实现队列和堆栈的功能,看下面的相关介绍. 一、看一下它们的性质,这种性质决定了它们
数字键盘字母组合问题[M]
本文向大家介绍JavaScript数组实现数据结构中的队列与堆栈,包括了JavaScript数组实现数据结构中的队列与堆栈的使用技巧和注意事项,需要的朋友参考一下 一、队列和堆栈的简单介绍 1.1、队列的基本概念 队列:是一种支持先进先出(FIFO)的集合,即先被插入的数据,先被取出! 如下图所示: 1.2、堆栈的基本概念 堆栈:是一种支持后进先出(LIFO)的集合,即后被插入的数据,
本文向大家介绍Python实现队列的方法,包括了Python实现队列的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Python实现队列的方法。分享给大家供大家参考。具体实现方法如下: 希望本文所述对大家的Python程序设计有所帮助。
问题内容: 在JavaScript中实现堆栈和队列的最佳方法是什么? 我正在寻找shunting-yard算法,并且我将需要这些数据结构。 问题答案: var stack = []; stack.push(2); // stack is now [2] stack.push(5); // stack is now [2, 5] var i = stack.pop(); // stack is no
我正在为我的考试做复习,我遇到了这个问题,我需要在执行以下代码后找到Q1的内容。 数据 普塞多密码 这是我的解决方案 > 如果数字不是0,则将数字推送到堆栈,使堆栈现在变为0 否则,弹出堆栈的前两个元素,因此现在堆栈变为 3.循环堆栈!清空,弹出堆栈并在Q1中排队。所以现在堆栈为空,队列变为空 33是队列中的第一个,5是队列中的最后一个。 我仔细核对了提供的答案,发现我的答案不同 提供的答案 我不