




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
3.3棧棧:一種操作受限的線性表,僅允許在表的一端進(jìn)行插入或刪除。進(jìn)行插入或刪除操作的一端稱為棧頂,位于棧頂位置的元素稱為棧頂元素;相應(yīng)地,將表的另一端稱為棧底,位于棧底位置的元素為棧底元素。棧的特性1.先進(jìn)后出、后進(jìn)先出趙六王五李四張三棧頂棧底最后入棧的“趙六”最先出棧,最先入棧的“張三”最后出棧2.有限序列性棧可以是空的,也可以包含多個元素。棧中元素呈現(xiàn)線性關(guān)系,棧頂元素有一個前驅(qū)點,棧底元素有一個后繼點,其他元素既有一個前驅(qū)點,又有一個后繼點。棧與隊列有什么相同點和不同點?相同點:都是一種操作受限的線性表,都具有有限序列性的特點。不同點:隊列中的元素具有先進(jìn)先出、后進(jìn)后出的特點,棧中的元素則具有先進(jìn)后出、后進(jìn)先出的特點。棧的基本操作棧,一般按順序結(jié)構(gòu)存儲,可以用數(shù)組實現(xiàn)。由于棧頂元素在數(shù)組中的位置會發(fā)生改變,因此使用top變量來記錄棧頂元素在數(shù)組中的位置。如下圖所示,①圖為棧結(jié)構(gòu),②圖為用數(shù)組st存儲該棧。CBA棧頂:top=2棧底:ABC數(shù)組st012top棧的存儲①②棧的常用操作有建棧、入棧、出棧等。1.建棧在Python中,當(dāng)要存儲n個元素的棧時,可以用列表創(chuàng)建一個長度為n的棧。例如,要使4個字母“A”“B”“C”“D”按序入棧、出棧,可以建一個長度為4的棧st,元素初始值均為空串。為了操作方便,把指向棧頂元素的指針變量top值設(shè)置為-1。Python代碼實現(xiàn)如下:top=-1st=[“”]*42.入棧、出棧入棧又叫壓棧操作,把數(shù)據(jù)元素壓入棧頂。每次入棧時,棧頂指針變量top值加1,再給st[top]賦值。字母“A”“B”“C”“D”按序入棧的過程如下圖所示。0123空棧top=-1ABACBADCBAtop0123top1023top2013top3012滿棧④②③①⑤st棧的入棧過程Python代碼實現(xiàn)如下:top=top+1#top=0st[top]=“A”#字母A入棧top=top+1#top=1st[top]=“B”#字母B入棧top=top+1#top=2st[top]=“C”#字母C入棧top=top+1#top=3st[top]=“D”#字母D入棧出棧時把棧頂元素取出,同時top值減1。如果棧中沒有元素時,即top=-1,不能進(jìn)行出棧操作。Python代碼實現(xiàn)如下:whiletop>-1:print(st[top])top-=1編號為1、2、3、4的4列火車,按順序開進(jìn)一個棧式結(jié)構(gòu)的站點。問:開出火車站的順序有多少種?請寫出所有可能的出棧序列。進(jìn)入棧中的元素可停留、可出棧(1)出棧序列以火車“①”開頭為例,只能是“①”進(jìn)“①”出,剩下“②③④”,則有:出入棧方式出棧序列②進(jìn)②出,③進(jìn)③出,④進(jìn)④出①②③④②進(jìn)②出,③進(jìn),④進(jìn)④出,③出①②④③②進(jìn),③進(jìn)③出,②出,④進(jìn)④出①③②④②進(jìn),③進(jìn)③出,④進(jìn)④出,②出①③④②②進(jìn),③進(jìn),④進(jìn)④出,③出,②出①④③②出棧序列以火車“②”開頭為例,只能是“①”進(jìn),“②”進(jìn),“②”出,剩下“③④”入棧,則有:出入棧方式出棧序列①出,③進(jìn)③出,④進(jìn)④出②①③④①出,③進(jìn),④進(jìn)④出,③出②①④③③進(jìn)③出,①出,④進(jìn)④出②③①④③進(jìn)③出,④進(jìn)④出,①出②③④①③進(jìn),④進(jìn)④出,③出,①出②④③①出棧序列以火車“③”開頭為例,只能是“①”進(jìn),“②”進(jìn),“③”進(jìn),“③”出,剩下“④”,則有:出入棧方式出棧序列②出,①出,④進(jìn)④出③②①④②出,④進(jìn)④出,①出③②④①④進(jìn)④出,②出,①出③④②①出棧序列以火車“④”開頭為例,只能是“①”進(jìn),“②”進(jìn),“③”進(jìn),“④”進(jìn),“④”進(jìn),“④”出,則有:④③②①。棧的應(yīng)用實例將一個十進(jìn)制數(shù)轉(zhuǎn)換為二進(jìn)制數(shù),根據(jù)入棧、出棧的步驟,采用Python編寫的完整程序及測試結(jié)果如下所示:st=[-1]*100#列表中元素初始值為-1top=-1number=int(input(“請輸入十進(jìn)制整數(shù):”))whilenumber>0:x=number%2top=top+1st[top]=x#入棧number=number//2whiletop>=0:print(st[top],end=“”)#出棧top=top-1請輸入十進(jìn)制整數(shù):13輸出:1101拓展鏈接用列表自帶的函數(shù)和方法實現(xiàn)的棧Python中用列表自帶的函數(shù)和方法可以實現(xiàn)建棧、入棧、出棧、棧中元素個數(shù)的統(tǒng)計等操作。例如:stacklist=[]#建立一個空棧liststacklist.append(“A”)#字母A入棧stacklist.append(“B”)#字母B入棧print(stacklist[1])#輸出棧頂元素,為字母Bprint(len(stacklist))#輸出棧中元素的個數(shù),為2stacklist.pop()#彈出棧頂元素print(len(stacklist))#輸出棧中元素的個數(shù),為1,是字母A練一練1.有如下Python程序段:a=[0]*5b=[“A”,”B”,”C”,”D”,”E”]top=-1whiletop<4:top=top+1iftop%2==0:a[top]=b[top]else:a[top]=topforiinrange(2):a.pop()top=top-1print(a,top)程序運行結(jié)束后,輸出的內(nèi)容是:A.[“A”,”B”,”C”]3B.[“A”,”B”,”C”]2C.[“A”,1,”C”]3D.[“A”,1,”C”]2D2.給定一個字符串,刪除相鄰重復(fù)項。例如,字符串“accdbbdca”刪除相鄰重復(fù)項的結(jié)果為“aca”。實現(xiàn)上述功能的python程序如下:S=input(“請輸入一個字符串:”)stack=[]#定義一個棧foriinS:if______①________:#如果當(dāng)前棧為空stack.append(i)elifi==stack[-1]:#如果當(dāng)前元素與棧頂元素相等_______②________#刪除else:_
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 論友誼的真諦議論文事情類作文8篇范文
- 2025安徽工程大學(xué)部分專業(yè)技術(shù)崗位招聘2人模擬試卷及答案詳解(易錯題)
- 課本中的秘密世界讀后感話題混合類作文10篇范文
- 商業(yè)守秘與合規(guī)經(jīng)營承諾書8篇
- 2025內(nèi)蒙古師范大學(xué)實驗幼兒園人員招聘3人模擬試卷及答案詳解(名師系列)
- 2025廣西崇左市龍州縣供銷資產(chǎn)經(jīng)營管理有限公司招聘基層供銷社人員4人模擬試卷完整答案詳解
- 費用預(yù)算與成本控制模板工具
- 行業(yè)的員工考勤管理系統(tǒng)
- 湖南省沅澧共同體2024-2025學(xué)年高一下學(xué)期期末考試地理試題(解析版)
- 湖南省名校教育聯(lián)合體2024-2025學(xué)年高二上學(xué)期10月月考地理試題(解析版)
- 2026陜西西安熱工研究院有限公司校園招聘筆試備考試題及答案解析
- 新能源產(chǎn)業(yè)信息咨詢服務(wù)協(xié)議范本
- 2025年學(xué)前衛(wèi)生學(xué)自考試題及答案
- 商業(yè)店鋪施工方案
- 新車車輛交接協(xié)議書范本
- 工程招標(biāo)代理機(jī)構(gòu)自查整改報告范文
- 心源性腦栓塞治療指南
- 2025-2026學(xué)年接力版(2024)小學(xué)英語四年級上冊(全冊)教學(xué)設(shè)計(附目錄)
- 婦女常見疾病防治講座
- 廠房屋頂分布式光伏項目可行性研究報告
- 供貨進(jìn)度保證措施方案
評論
0/150
提交評論