數(shù)據(jù)結(jié)構(gòu)C++ppt課件_第1頁
數(shù)據(jù)結(jié)構(gòu)C++ppt課件_第2頁
數(shù)據(jù)結(jié)構(gòu)C++ppt課件_第3頁
數(shù)據(jù)結(jié)構(gòu)C++ppt課件_第4頁
數(shù)據(jù)結(jié)構(gòu)C++ppt課件_第5頁
已閱讀5頁,還剩70頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、125.1 定義及主要特性3基本形態(tài)空二叉樹A只有根結(jié)點的二叉樹AB右子樹為空AB左子樹為空ABC左、右子樹均非空4二叉樹的相關術(shù)語5二叉樹的相關術(shù)語6二叉樹的相關術(shù)語7二叉樹的相關術(shù)語8完全二叉樹12311458912136710141512345671231145891267101234569二叉樹性質(zhì)10二叉樹的性質(zhì)11二叉樹的性質(zhì)12二叉樹的性質(zhì)13二叉樹的性質(zhì)14二叉樹的抽象數(shù)據(jù)類型155.2 周游二叉樹16先序遍歷ADBCD L RAD L RD L RBDCD L R17中序遍歷ADBCL D RBL D RL D RADCL D R18后序遍歷ADBC L R DL R DL

2、R DADCL R DB19舉例-+/a*b-efcd中序遍歷:后序遍歷:層次遍歷:-+a*b-cd/ef-+a*b-cd/ef- +a *b - c d/e f-+a*b-cd/ef先序遍歷:20前序遍歷算法21遍歷算法應用225.3 二叉樹的實現(xiàn)23二叉樹的存儲24二叉樹存儲(區(qū)別葉和分支)25表達式樹:聯(lián)合實現(xiàn)方法26用不同的類實現(xiàn)分支和葉27不同類實現(xiàn)的分支結(jié)點285.3.2 結(jié)構(gòu)性空間開銷分析29結(jié)構(gòu)性空間開銷分析(2 )2(2 )2nppnpdpdn305.3.3 使用數(shù)組實現(xiàn)完全二叉樹31順序存儲32完全二叉樹的下標對應關系00000000000033完全二叉樹的下標公式345.

3、4 二叉查找樹35BST圖示36檢索37二叉檢索樹類的定義38二叉檢索樹類的定義39檢索40插入41BST插入圖示42刪除43刪除子樹中最小值圖示44刪除右子樹中最小值結(jié)點45BST Remove(1)46BST Remove(2)475.5 堆與優(yōu)先隊列48最小值堆49最大值堆的實現(xiàn)50建堆圖示51堆的形成52Shiftdown操作53舉例4965382713769750496538271376509749133827657650974913382765765097132738496576509754Shiftdown55Remove Max Value56建堆操作的效率575.6 Huff

4、man編碼樹58數(shù)據(jù)壓縮和不等長編碼595.6.1 建立Huffman編碼樹10niiilw這個擴充二叉樹的葉結(jié)點帶權(quán)外部路徑長度總和這個擴充二叉樹的葉結(jié)點帶權(quán)外部路徑長度總和最小(注意不管內(nèi)部結(jié)點,也不用有序)。權(quán)越大的葉結(jié)點離根越近;如果某個葉的權(quán)最?。ㄗ⒁獠还軆?nèi)部結(jié)點,也不用有序)。權(quán)越大的葉結(jié)點離根越近;如果某個葉的權(quán)較小,可能就會離根較遠。較小,可能就會離根較遠。60建立Huffman樹的過程61Huffman建樹圖示62Huffman建樹圖示63Huffman建樹圖示64Huffman樹結(jié)點的實現(xiàn)65Huffman樹葉節(jié)點的實現(xiàn)66Huffman樹分支結(jié)點的實現(xiàn)67元素/頻率對的類

5、聲明68Huffman樹的類聲明69Huffman樹的類聲明70Huffman樹構(gòu)建函數(shù)/ Build a Huffman tree from list fltemplate HuffTree*buildHuff(SLListHuffTree*, HHCompare * fl) HuffTree *temp1, *temp2, *temp3; for (fl-setStart(); fl-leftLength()+fl-rightLength()1; fl-setStart() / While at least two items left fl-remove(temp1); / Pull first two trees fl-remove(temp2); / off the list temp3 = new HuffTree(temp1, temp2); fl-insert(temp3); / Put the new tree back on list delete temp1; / Must delete the remnants delete temp2; / of the trees we created return temp3;71編碼結(jié)果平均代碼長度是平均代碼長度是2

溫馨提示

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

最新文檔

評論

0/150

提交評論