大一下數(shù)算sessdsa-03basicds地球與空間科學(xué)學(xué)院_第1頁
大一下數(shù)算sessdsa-03basicds地球與空間科學(xué)學(xué)院_第2頁
大一下數(shù)算sessdsa-03basicds地球與空間科學(xué)學(xué)院_第3頁
大一下數(shù)算sessdsa-03basicds地球與空間科學(xué)學(xué)院_第4頁
大一下數(shù)算sessdsa-03basicds地球與空間科學(xué)學(xué)院_第5頁
已閱讀5頁,還剩52頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

據(jù) 〉本章目據(jù)結(jié)與 〉什么是線性結(jié)與算( 〉棧(〉隊(duì)列)〉雙端隊(duì)列〉列表 結(jié) 結(jié) 算( ( 什么是線性結(jié)構(gòu)Linear 據(jù) 與 與 法 有時(shí)候稱為“左”“右”端、“前”“后”端、“頂”“底” 這些線性結(jié)構(gòu)是應(yīng)用最廣泛的數(shù)據(jù)結(jié)構(gòu),它們出現(xiàn)在各種算法中 結(jié) 與法 法 這種次序通常稱為“后進(jìn)先出LIFO”:LastinFirstout,這 結(jié) 結(jié)構(gòu) 算 ( 構(gòu)數(shù) 〉抽象數(shù)據(jù)類型“棧”是一個(gè)有次序的數(shù)據(jù)集,每個(gè)數(shù)據(jù)項(xiàng)僅從“頂據(jù) ”端入到據(jù)集、從據(jù)集移除棧具后進(jìn)出的結(jié) 構(gòu)與法 法 push(item):將item數(shù)據(jù)項(xiàng)加入棧頂,無返回值 StackStackStackReturns=Stack32() 用Python實(shí)現(xiàn)ADT 在清楚地定義了抽象數(shù)據(jù)類型Stack之后,我們看看如何用 法 將ADTStack實(shí)現(xiàn)為Python的一個(gè)法 將ADTStack的操作實(shí)現(xiàn)為Class 用Python實(shí)現(xiàn)ADT() 據(jù)構(gòu) 構(gòu)與 ( frompythonds.basic.stackimport( 在與pythonds 平級(jí)的stackop.py文件里面,按照上面的import導(dǎo)入后,就可以直接調(diào)用Stack類了 () ADTStack 如果我們把List的另一端(首端index=0)作為Stack的棧頂, 法 法 ) 結(jié) A)'x'B)'y'C)'z'D)棧已經(jīng)空結(jié)構(gòu) 算 A)'x'B)棧已經(jīng)空了C)會(huì)出錯(cuò)!D)( 如:def 結(jié) (5+6)?結(jié)與 與算 (比如:(defun(*n) 據(jù)構(gòu) 構(gòu) 法 法 ) () () 構(gòu)數(shù)〉在實(shí)際的應(yīng)用里,我們會(huì)碰到種括號(hào),如python中列表所用的 構(gòu)與法 法 {{{{([][])()}[[{{(())}]][][][]()} ([)[{()

((()]) 需要改進(jìn)的地 結(jié) 碰到各種右括號(hào)的時(shí)候需要判斷棧頂 法() 結(jié)與 與法 法( () 法( (233)等于(351)和

) 八進(jìn)制可用個(gè)不同數(shù)字、、、、、、、 () 構(gòu) 法 法 ?〉雖然人們已經(jīng)習(xí)慣了這種表示法,但計(jì)算機(jī)處理最好是能明確規(guī)定所 數(shù)〉據(jù)與法結(jié)〉例如中綴表達(dá)式A+B,將操作符移到前面,變?yōu)椤?AB”,或者將操作 與法 InfixPrefixPostfixA++AABA+B*+A*BABC* 再來看中綴表達(dá)式“(A+B)*C”,按照轉(zhuǎn)換的規(guī)則,前綴表達(dá)式 結(jié)與 綴和后綴與 法 InfixA+B*C+

Prefix++A*BC

PostfixABC*+D(A+B)*

+

*+AB+C

AB+CD+A*B+C*DA+B+C+

+*AB*C+++ABC

AB*CD*+AB+C+D 結(jié)與 與法 法()〉看子表達(dá)式(B*C)的右括號(hào),如果把操作符*移到右括號(hào)的位置,替 ( ( 將所有的操作符移動(dòng)到子表達(dá)式所在的左括號(hào)(前綴)或者右括號(hào)(后綴 結(jié) 結(jié) 操作符的出現(xiàn)順序,在后綴表達(dá)式中反轉(zhuǎn)了,由于*的優(yōu)先級(jí)比+高,所與 法 〉在中綴表達(dá)式轉(zhuǎn)換為后綴形式的處理過程中,由于操作符比操作數(shù)要 結(jié)與 與 法 〉所以遇到左括號(hào),要標(biāo)記下,其后出現(xiàn)的操作符優(yōu)先級(jí)提升了,一旦 〉總結(jié)下,在從左到右掃描逐個(gè)字符掃描中綴表達(dá)式的過程中,采用一 后面的算法描述中,約定中綴表達(dá)式是由空格隔開的一系列單(token)構(gòu)成,操作符單詞包括*/+-() 結(jié) 結(jié)構(gòu) 法 法 如果單詞是一個(gè)右括號(hào)“)”,則反復(fù)彈出opstack 中綴表達(dá)式單詞列表掃描結(jié)束后,把opstack棧中的所有剩余操作 法 ) ( )

結(jié)算 〉跟中綴轉(zhuǎn)換為后綴問題不同,在對(duì)后綴表達(dá)式從左到右掃描的過程中 結(jié)算 (〉如“456*+”,我們先掃描到4、5兩個(gè)操作數(shù),但還不知道對(duì))〉繼續(xù)掃描,又碰到操作數(shù)6,所以還不能知道如何計(jì)算,繼續(xù)暫存入需要注意:先彈出的是右操作數(shù),后彈出的是左操作數(shù),這個(gè)對(duì)于-/ ()00 據(jù)構(gòu) 構(gòu)與 ( () 構(gòu) 構(gòu)與法 法()院院 手工轉(zhuǎn)換中綴表達(dá)式到后綴形式:10+3*5/(16-4據(jù)構(gòu) 計(jì)算后綴表達(dá)式值:1710+3*9構(gòu)與 擴(kuò)展前述的infixToPostfix函數(shù)代碼,使之能處理指數(shù)操作( (指數(shù)操作符用法如:5*3^42 構(gòu) 〉隊(duì)列是一種有次序的數(shù)據(jù)集合,其特征是,新數(shù)據(jù)項(xiàng)的添加總發(fā)生在 構(gòu)算 算 ( 新加入的數(shù)據(jù)項(xiàng)必須在數(shù)據(jù)集末尾等待,而等待時(shí)間最長的數(shù)據(jù) 則是隊(duì)首。這種次序安排的原則稱為(FIFO:First-infirst-out) efirst-served” 和一個(gè)出口,不允許數(shù)據(jù)項(xiàng)直接插入隊(duì)中,也不 據(jù)與法 〉“打印隊(duì)列”:當(dāng)一臺(tái) 與法(〉“進(jìn)程調(diào)度”:操作系統(tǒng)程進(jìn)行調(diào)度,由于CPU 放到CPU的哪個(gè)去運(yùn)行多長的一段時(shí)間,是進(jìn)程調(diào)度需要決定的〉“鍵盤緩沖”:有時(shí)候鍵盤敲擊并不馬上顯示在屏幕上,需要有個(gè)隊(duì) 構(gòu)數(shù)〉抽象數(shù)據(jù)類型Queue是一個(gè)有次序的數(shù)據(jù)集合,數(shù)據(jù)項(xiàng)僅添加到“尾 rear”端,而且僅從“首front”端移除,Queue具有FIFO的操作 構(gòu)與法算〉抽象數(shù)據(jù)類型Queue法 QueueQueueQueueReturnQueue342() Python實(shí)現(xiàn)ADT 采用PythonList來容納Queue 數(shù)據(jù)結(jié)與 與算 ) “擊鼓傳花”的西方版本,傳燙手熱土豆,鼓聲停的時(shí)候,手里 結(jié)與 與法 問題 猶太 羅馬人,落到困境 法 給自己安排了個(gè) 結(jié)與 與法 法( ) () 構(gòu)算數(shù) 〉 多人共 臺(tái) ,采取“先到先服務(wù)”的隊(duì)列策略來執(zhí)行打據(jù) 務(wù),這種定下一個(gè)要的題就,這打印業(yè)系的結(jié) 容量有多大?在能夠接受的等待時(shí)間內(nèi),系統(tǒng)能容納多少用戶以多與 ?構(gòu)算法 〉一個(gè)具體的實(shí)例配置如下:一 〉問題是:怎么設(shè)定 〉我們要用一段程序來模擬這種打印任務(wù)場(chǎng)景,然后對(duì)程序運(yùn)行結(jié)果進(jìn) 結(jié) 與法 法 確定生成概率:實(shí)例為每小時(shí)會(huì)有10個(gè)學(xué)生提交的20個(gè)作業(yè),這樣,概結(jié) 與 法 據(jù)構(gòu) 構(gòu) 法 法 ?如 (()

(() 據(jù) 總平均等待時(shí)間93.1秒,最長的平均等待164秒,最短的平

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論