python實現堆疊與佇列的方法

2022-10-04 23:39:28 字數 1956 閱讀 1031

1、python實現堆疊,可先將stack類寫入檔案stack.py,在其它程式檔案中使用frwww.cppcns.comom stack import stack,然後就可以使用堆疊了。

stack.py的程式:

複製** **如下:

class stack(): 

def __init__(self,size): 

self.size=size; 

&nbswww.cppcns.comp;    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(): 

&nbs   raise exception("stack is empty"); 

else: 

self.top=self.top-1; 

return self.stack.pop(); 

def isfull(self): 

return www.cppcns.comself.top+1==self.size; 

def isempty(self): 

return self.top==-1;

再寫乙個程式檔案,stacktest.py,使用棧,內容如下:

複製** **如下:

#!/usr/bin/python  

from sta程式設計客棧ck 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列表實現堆疊和佇列 堆疊 堆疊是乙個後進先出的資料結構,其工作方式就像生活中常見到的直梯,先進去的人肯定是最後出。後進先出 class stack def init self,size self.size size self.stack self.top 1 defpush se...

python 堆疊與佇列

昨天嘗試了python的鍊錶操作,一時意猶未盡,就連續寫了幾行python堆疊與佇列的 當然python作為高階語言,一般都要使用到類。在抒寫 之前,首先要對堆疊和佇列兩種資料結構進行分析,提取出各自類的特徵屬性 資料和方法 class stack def init self,top.top指標 d...

用python實現佇列,堆疊

stack 堆疊 後進先出 queue佇列 先進先出 fifo first in first out putget queue佇列 先進先出 fifo first in first out put get class queue def init self self.l def put self,i...