Python基于list的append和pop方法實(shí)現(xiàn)堆棧與隊(duì)列功能示例
本文實(shí)例講述了Python基于list的append和pop方法實(shí)現(xiàn)堆棧與隊(duì)列功能。分享給大家供大家參考,具體如下:
#coding=utf8
'''''
堆棧:
堆棧是一個(gè)后進(jìn)先出(LIFO)的數(shù)據(jù)結(jié)構(gòu)。
在棧上"push"元素是個(gè)常用術(shù)語(yǔ),意思是把一個(gè)對(duì)象添加到堆棧中。
刪除一個(gè)元素,可以把它"pop"出堆棧。
隊(duì)列:
隊(duì)列是一種先進(jìn)先出(FIFO)的數(shù)據(jù)類(lèi)型。
新的元素通過(guò)"入隊(duì)"的方式添加進(jìn)隊(duì)列的末尾,
"出對(duì)"就是從隊(duì)列的頭部刪除。
'''
#創(chuàng)建列表
def creatList():
initList=[]
try:
while True:
#從鍵上輸入元素
inputItem=raw_input(u"Enter item(輸入quit結(jié)束輸入):")
#當(dāng)輸入字符不是quit,把元素加入列表
#當(dāng)輸入字符是quit,結(jié)束輸入
if inputItem!="quit":
initList.append(inputItem.strip())
else:
break
#返回輸入列表
return initList
except Exception,e:
print "Create List Error:",e
#刪除列表的第一個(gè)元素并返回刪除元素
def popTheFirst(List):
try:
#判斷列表中是否存在元素
#如果存在元素,刪除并返回第一個(gè)元素
#如果不存在,給出提示信息
if len(List)>0:
return List.pop(0)
else:
print "The list is empty..."
except Exception,e:
print "pop the first item Error:",e
#刪除列表的最后元素并返回刪除元素
def popTheLast(List):
try:
#判斷列表中是否存在元素
#如果存在元素,刪除并返回最后元素
#如果不存在,給出提示信息
if len(List)>0:
#pop函數(shù)默認(rèn)刪除最后一個(gè)元素
return List.pop()
else:
print "The list is empty..."
except Exception,e:
print "pop the last item Error:",e
#調(diào)用creatList函數(shù)創(chuàng)建表
listOne=creatList()
#輸出創(chuàng)建表信息
print "The init list :",listOne
#調(diào)用popTheFirst函數(shù)刪除并返回第一個(gè)元素
theFirst=popTheFirst(listOne)
#輸出當(dāng)前表的第一個(gè)元素
print "The first item of list:",theFirst
#調(diào)用popTheFirst函數(shù)刪除并返回最后一個(gè)元素
theLast=popTheLast(listOne)
#輸出當(dāng)前表的最后一個(gè)元素元素
print "The last item of list:",theLast
'''''
這里的listOne、theFirst、theLast都是全局變量
如果更改上述語(yǔ)句順序會(huì)獲取不到想要的結(jié)果。
'''
運(yùn)行結(jié)果:

更多關(guān)于Python相關(guān)內(nèi)容感興趣的讀者可查看本站專(zhuān)題:《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python加密解密算法與技巧總結(jié)》、《Python編碼操作技巧總結(jié)》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》及《Python入門(mén)與進(jìn)階經(jīng)典教程》
希望本文所述對(duì)大家Python程序設(shè)計(jì)有所幫助。
相關(guān)文章
使用Python進(jìn)行體育競(jìng)技分析(預(yù)測(cè)球隊(duì)成績(jī))
這篇文章主要介紹了用Python進(jìn)行體育競(jìng)技分析(預(yù)測(cè)球隊(duì)成績(jī)),本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-05-05
WxPython開(kāi)發(fā)之實(shí)現(xiàn)表格數(shù)據(jù)導(dǎo)出到Excel并打開(kāi)
在 Python 中使用 wxPython 導(dǎo)出實(shí)體類(lèi)列表數(shù)據(jù)到 Excel,通常可以借助 openpyxl 或 pandas 庫(kù)來(lái)實(shí)現(xiàn),下面就跟隨小編一起來(lái)了解下具體操作吧2024-12-12
python實(shí)現(xiàn)kmp算法的實(shí)例代碼
這篇文章主要介紹了python實(shí)現(xiàn)kmp算法的實(shí)例代碼,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-04-04
100?個(gè)?Python?小例子(練習(xí)題四)
這篇文章主要給大家分享100?個(gè)?Python?小例子,前文分享了一二三,本文的四十最后一篇了,這篇就把100道python小練習(xí)全分享完了,感興趣的小伙伴也可以去練習(xí)前幾期內(nèi)容,洗碗給這幾篇文章給你的學(xué)習(xí)帶來(lái)幫助2022-01-01
Python的Tornado框架的異步任務(wù)與AsyncHTTPClient
Tornado的奧義就在于異步處理來(lái)提高單線(xiàn)程的Python程序執(zhí)行性能,這里我們就來(lái)詳解Python的Tornado框架的異步任務(wù)與AsyncHTTPClient,需要的朋友可以參考下2016-06-06
python如何在pygame中設(shè)置字體并顯示中文詳解
再簡(jiǎn)單的游戲界面中均涉及文字處理,下面這篇文章主要給大家介紹了關(guān)于python如何在pygame中設(shè)置字體并顯示中文的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-01-01
Python數(shù)據(jù)庫(kù)自動(dòng)化完整指南
本指南詳細(xì)講解如何使用Python操作MySQL、Oracle和Microsoft?SQL?Server數(shù)據(jù)庫(kù),涵蓋常用庫(kù)、基礎(chǔ)操作、高級(jí)功能及完整代碼示例,需要的朋友可以參考下2025-03-03
Python圖像處理庫(kù)PIL的ImageEnhance模塊使用介紹
這篇文章主要介紹了Python圖像處理庫(kù)PIL的ImageEnhance模塊使用介紹,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-02-02

