python棧的基本定義與使用方法示例【初始化、賦值、入棧、出棧等】
本文實(shí)例講述了python棧的基本定義與使用方法。分享給大家供大家參考,具體如下:
# -*- coding:utf-8 -*- #! python3 #在桟的設(shè)計(jì)中,我們需要定義一個(gè)實(shí)例屬性top。三個(gè)實(shí)例方法:獲取棧頂元素peek();出桟pop();入棧push() #棧的效果:先進(jìn)后出 class Node(object): ##節(jié)點(diǎn),包括兩個(gè)屬性,一個(gè)是節(jié)點(diǎn)的值,一個(gè)是節(jié)點(diǎn)的下一個(gè)指向 def __init__(self,value): self.value = value #賦值給節(jié)點(diǎn) self.next = None #節(jié)點(diǎn)的下一個(gè)指向 class stack(object): def __init__(self): self.top = None #創(chuàng)建棧,賦予top棧頂屬性,top初始為空 def peek(self): #獲取棧頂?shù)脑兀祷貙?duì)應(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é)點(diǎn)的value,node) if node != None: #如果加入的節(jié)點(diǎn),不為空 packNode = Node(node) #實(shí)例化Node類 packNode.next = self.top #將新增的節(jié)點(diǎn)的指向賦值為棧頂?shù)闹赶? self.top = packNode #將棧頂?shù)墓?jié)點(diǎn),賦值為新增節(jié)點(diǎn) return packNode.value #返回節(jié)點(diǎn)的值 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ù)南乱粋€(gè)節(jié)點(diǎn) return tmp #返回出棧的節(jié)點(diǎn)的值 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
更多關(guān)于Python相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python加密解密算法與技巧總結(jié)》、《Python編碼操作技巧總結(jié)》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》及《Python入門與進(jìn)階經(jīng)典教程》
希望本文所述對(duì)大家Python程序設(shè)計(jì)有所幫助。
- Python算術(shù)運(yùn)算符實(shí)例詳解
- Python3單行定義多個(gè)變量或賦值方法
- python 解決動(dòng)態(tài)的定義變量名,并給其賦值的方法(大數(shù)據(jù)處理)
- python 隊(duì)列基本定義與使用方法【初始化、賦值、判斷等】
- python入門教程之基本算術(shù)運(yùn)算符
- Python Spyder 調(diào)出縮進(jìn)對(duì)齊線的操作
- python 實(shí)現(xiàn)循環(huán)定義、賦值多個(gè)變量的操作
- Python?if?else語句對(duì)縮進(jìn)的要求
- python小例子-縮進(jìn)式編碼+算術(shù)運(yùn)算符+定義與賦值
相關(guān)文章
Python pkg_resources模塊動(dòng)態(tài)加載插件實(shí)例分析
當(dāng)編寫應(yīng)用軟件時(shí),我們通常希望程序具有一定的擴(kuò)展性,額外的功能——甚至所有非核心的功能,都能通過插件實(shí)現(xiàn),具有可插拔性。特別是使用 Python 編寫的程序,由于語言本身的動(dòng)態(tài)特性,為我們的插件方案提供了很多種實(shí)現(xiàn)方式2022-08-08Keras神經(jīng)網(wǎng)絡(luò)efficientnet模型搭建yolov3目標(biāo)檢測(cè)平臺(tái)
這篇文章主要為大家介紹了Keras利用efficientnet系列模型搭建yolov3目標(biāo)檢測(cè)平臺(tái)的過程詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-05-05python3+mysql查詢數(shù)據(jù)并通過郵件群發(fā)excel附件
這篇文章主要為大家詳細(xì)介紹了python3+mysql查詢數(shù)據(jù),并通過郵件群發(fā)excel附件,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-02-02python在Windows8下獲取本機(jī)ip地址的方法
這篇文章主要介紹了python在Windows8下獲取本機(jī)ip地址的方法,涉及Python中socket包相關(guān)函數(shù)的使用技巧,需要的朋友可以參考下2015-03-03pytorch __init__、forward與__call__的用法小結(jié)
這篇文章主要介紹了pytorch __init__、forward與__call__的用法小結(jié),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2021-02-02Python?HMAC模塊維護(hù)數(shù)據(jù)安全技術(shù)實(shí)例探索
本篇博客將帶領(lǐng)讀者深入探索Python中HMAC模塊的高級(jí)應(yīng)用,通過豐富的示例代碼和詳細(xì)的解釋,揭示HMAC在實(shí)際應(yīng)用場(chǎng)景中的多面光芒,從基礎(chǔ)概念到密碼存儲(chǔ)、文件完整性驗(yàn)證、API安全,再到與加密算法的巧妙結(jié)合2024-01-01Python?functools凍結(jié)參數(shù)小技巧實(shí)現(xiàn)代碼簡潔優(yōu)化
這篇文章主要為大家介紹了Python?functools凍結(jié)參數(shù)小技巧實(shí)現(xiàn)代碼簡潔優(yōu)化示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-12-12Django后臺(tái)管理系統(tǒng)的圖文使用教學(xué)
在本篇文章里小編給大家整理的是一篇關(guān)于Django后臺(tái)管理系統(tǒng)的圖文使用教學(xué)內(nèi)容,需要的朋友們參考下。2020-01-01