python實(shí)現(xiàn)堆棧與隊(duì)列的方法
本文實(shí)例講述了python實(shí)現(xiàn)堆棧與隊(duì)列的方法。分享給大家供大家參考。具體分析如下:
1、python實(shí)現(xiàn)堆棧,可先將Stack類寫(xiě)入文件stack.py,在其它程序文件中使用from stack import Stack,然后就可以使用堆棧了。
stack.py的程序:
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;
再寫(xiě)一個(gè)程序文件,stacktest.py,使用棧,內(nèi)容如下:
from stack import Stack
s=Stack(20);
for i in range(3):
s.push(i);
s.pop()
print s.isempty();
2、python 實(shí)現(xiàn)隊(duì)列:
def __init__(self,size):
self.size=size;
self.front=-1;
self.rear=-1;
self.queue=[];
def enqueue(self,ele): #入隊(duì)操作
if self.isfull():
raise exception("queue is full");
else:
self.queue.append(ele);
self.rear=self.rear+1;
def dequeue(self): #出隊(duì)操作
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();
希望本文所述對(duì)大家的Python程序設(shè)計(jì)有所幫助。
相關(guān)文章
使用Python腳本從文件讀取數(shù)據(jù)代碼實(shí)例
這篇文章主要介紹了使用Python腳本從文件讀取數(shù)據(jù)代碼實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-01-01
深入淺析Python科學(xué)計(jì)算庫(kù)Scipy及安裝步驟
這篇文章主要介紹了Python科學(xué)計(jì)算庫(kù)—Scipy的相關(guān)知識(shí),非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-10-10
深入理解Python虛擬機(jī)中復(fù)數(shù)(complex)的實(shí)現(xiàn)原理及源碼剖析
在本篇文章當(dāng)中主要給大家介紹在 cpython 虛擬機(jī)當(dāng)中是如何實(shí)現(xiàn) 復(fù)數(shù) complex 這個(gè)數(shù)據(jù)類型的,這個(gè)數(shù)據(jù)類型在 cpython 當(dāng)中一應(yīng)該是一個(gè)算比較簡(jiǎn)單的數(shù)據(jù)類型了,非常容易理解2023-03-03
Python函數(shù)中*args和**kwargs來(lái)傳遞變長(zhǎng)參數(shù)的用法
這篇文章主要介紹了Python編程中使用*args和**kwargs來(lái)傳遞可變參數(shù)的用法,文中舉了變長(zhǎng)參數(shù)的例子,需要的朋友可以參考下2016-01-01
python mysql斷開(kāi)重連的實(shí)現(xiàn)方法
這篇文章主要介紹了python mysql斷開(kāi)重連的實(shí)現(xiàn)方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-07-07
python使用html2text庫(kù)實(shí)現(xiàn)從HTML轉(zhuǎn)markdown的方法詳解
這篇文章主要介紹了python使用html2text庫(kù)實(shí)現(xiàn)從HTML轉(zhuǎn)markdown的方法,需要的朋友可以參考下2020-02-02

