您好,登錄后才能下訂單哦!
本篇文章為大家展示了python中如何定義與使用棧,內(nèi)容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細(xì)介紹希望你能有所收獲。
具體如下:
# -*- coding:utf-8 -*- #! python3 #在桟的設(shè)計中,我們需要定義一個實例屬性top。三個實例方法:獲取棧頂元素peek();出桟pop();入棧push() #棧的效果:先進(jìn)后出 class Node(object): ##節(jié)點,包括兩個屬性,一個是節(jié)點的值,一個是節(jié)點的下一個指向 def __init__(self,value): self.value = value #賦值給節(jié)點 self.next = None #節(jié)點的下一個指向 class stack(object): def __init__(self): self.top = None #創(chuàng)建棧,賦予top棧頂屬性,top初始為空 def peek(self): #獲取棧頂?shù)脑?,返回對?yīng)的值 if self.top!= None: #如果棧頂不為空,也就是說棧里有數(shù)據(jù) return self.top.value #那就直接返回棧頂?shù)闹? else: return None #如果棧里無數(shù)據(jù),則返回None def push(self,node): #添加元素到棧(參數(shù)包括self和節(jié)點的value,node) if node != None: #如果加入的節(jié)點,不為空 packNode = Node(node) #實例化Node類 packNode.next = self.top #將新增的節(jié)點的指向賦值為棧頂?shù)闹赶? self.top = packNode #將棧頂?shù)墓?jié)點,賦值為新增節(jié)點 return packNode.value #返回節(jié)點的值 else: return None #返回None def pop(self): #出棧 if self.top == None: #如果棧是空的 return None #返回None else: tmp = self.top.value #將棧頂?shù)闹祩鹘otmp self.top = self.top.next #將棧頂指向變?yōu)槟壳皸m數(shù)南乱粋€節(jié)點 return tmp #返回出棧的節(jié)點的值 s = stack() a = Node(1) print(s.push(a).value) print(s.push(2)) print(s.push(3)) print(s.peek()) print(s.push(4)) print(s.pop()) print(s.pop()) print(s.pop()) print(s.pop().value)
運(yùn)行結(jié)果:
1
2
3
3
4
4
3
2
1
上述內(nèi)容就是python中如何定義與使用棧,你們學(xué)到知識或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識儲備,歡迎關(guān)注億速云行業(yè)資訊頻道。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。