《哈夫曼樹構(gòu)造》PPT課件.ppt

上傳人:w****2 文檔編號:14698036 上傳時間:2020-07-28 格式:PPT 頁數(shù):27 大?。?.50MB
收藏 版權(quán)申訴 舉報(bào) 下載
《哈夫曼樹構(gòu)造》PPT課件.ppt_第1頁
第1頁 / 共27頁
《哈夫曼樹構(gòu)造》PPT課件.ppt_第2頁
第2頁 / 共27頁
《哈夫曼樹構(gòu)造》PPT課件.ppt_第3頁
第3頁 / 共27頁

下載文檔到電腦,查找使用更方便

9.9 積分

下載資源

還剩頁未讀,繼續(xù)閱讀

資源描述:

《《哈夫曼樹構(gòu)造》PPT課件.ppt》由會員分享,可在線閱讀,更多相關(guān)《《哈夫曼樹構(gòu)造》PPT課件.ppt(27頁珍藏版)》請?jiān)谘b配圖網(wǎng)上搜索。

1、1/39,哈夫曼樹構(gòu)造及其編碼,主講人: 程玉勝,2013.11.29,數(shù)據(jù)結(jié)構(gòu)精品資源共享課,2/39,內(nèi)容提要,復(fù)習(xí) 知識點(diǎn)引入 哈夫曼樹相關(guān)定義 哈夫曼樹構(gòu)造 哈夫曼編碼,,復(fù)習(xí) 知識點(diǎn)引入 哈夫曼樹相關(guān)定義 哈夫曼樹構(gòu)造 哈夫曼編碼,3/39,內(nèi)容提要,復(fù)習(xí) 知識點(diǎn)引入 哈夫曼樹相關(guān)定義 哈夫曼樹構(gòu)造 哈夫曼編碼,,復(fù)習(xí) 知識點(diǎn)引入 哈夫曼樹相關(guān)定義 哈夫曼樹構(gòu)造 哈夫曼編碼,4/39,,二叉樹、樹、森林,N個結(jié)點(diǎn)的二叉樹中結(jié)點(diǎn)空域的個數(shù)是【 ?】,證明的方法:從結(jié)點(diǎn)數(shù)和分支數(shù)兩個角度來證明。,復(fù)習(xí) 知識點(diǎn)引入 哈夫曼樹相關(guān)定義 哈夫曼樹構(gòu)造 哈夫曼編碼,在一棵度為3的樹中,其中度為3

2、的結(jié)點(diǎn)數(shù)為2個,度為2的結(jié)點(diǎn)數(shù)為1個,度為1的結(jié)點(diǎn)數(shù)為2個,則度為0的結(jié)點(diǎn)數(shù)為 個,思考,樹、森林到二叉樹的相互轉(zhuǎn)換,5/39,內(nèi)容提要,復(fù)習(xí) 知識點(diǎn)引入 哈夫曼樹相關(guān)定義 哈夫曼樹構(gòu)造 哈夫曼編碼,,復(fù)習(xí) 知識點(diǎn)引入 哈夫曼樹相關(guān)定義 哈夫曼樹構(gòu)造 哈夫曼編碼,6/39,內(nèi)容提要,復(fù)習(xí) 知識點(diǎn)引入 哈夫曼樹相關(guān)定義 哈夫曼樹構(gòu)造 哈夫曼編碼,,復(fù)習(xí) 知識點(diǎn)引入 哈夫曼樹相關(guān)定義 哈夫曼樹構(gòu)造 哈夫曼編碼,7/39,,成績判定問題 1,把下面成績轉(zhuǎn)換為5分制,計(jì)算不同的if語句比較的次數(shù),假設(shè)100個學(xué)生。,復(fù)習(xí) 知識點(diǎn)引入 哈夫曼樹相關(guān)定義 哈夫曼樹構(gòu)造 哈夫曼編碼,第一種寫法:if(c

3、j<6) cout<<“不及格” elseif(cj<70) cout<<“及格” elseif(cj<80) cout<<“中等” elseif(cj<90)cout<<“良好” else cout<<“優(yōu)秀”,8/39,,成績判定問題 2,復(fù)習(xí) 知識點(diǎn)引入 哈夫曼樹相關(guān)定義 哈夫曼樹構(gòu)造 哈夫曼編碼,對應(yīng)的流程圖:,(1)、計(jì)算2種方法在比較次數(shù)上的時間差異性:,1*5+2*15+3*40+4*30+4*10=315,3*5+3*15+2*40+2*30+2*20=220,(2)、哪個二叉樹好?怎樣保證比較次數(shù)最少呢?,最好的 最優(yōu)二叉樹,9/39,內(nèi)容提要,復(fù)習(xí) 知識點(diǎn)引入 哈夫

4、曼樹相關(guān)定義 哈夫曼樹構(gòu)造 哈夫曼編碼,,復(fù)習(xí) 知識點(diǎn)引入 哈夫曼樹相關(guān)定義 哈夫曼樹構(gòu)造 哈夫曼編碼,10/39,內(nèi)容提要,復(fù)習(xí) 知識點(diǎn)引入 哈夫曼樹相關(guān)定義 哈夫曼樹構(gòu)造 哈夫曼編碼,,復(fù)習(xí) 知識點(diǎn)引入 哈夫曼樹相關(guān)定義 哈夫曼樹構(gòu)造 哈夫曼編碼,11/39,,哈夫曼樹的相關(guān)定義,樹的帶權(quán)路徑長度定義為: 樹中所有葉子結(jié)點(diǎn)的帶權(quán)路徑長度之和 WPL(T) = wklk (對所有葉子結(jié)點(diǎn)),復(fù)習(xí) 知識點(diǎn)引入 哈夫曼樹相關(guān)定義 哈夫曼樹構(gòu)造 哈夫曼編碼,最優(yōu)二叉樹(哈夫曼樹) 使 WPL最小的二叉樹,WPL(T)=72+52+23+43+92 =60,12/39,內(nèi)容提要,復(fù)習(xí) 知識點(diǎn)引入

5、 哈夫曼樹相關(guān)定義 哈夫曼樹構(gòu)造 哈夫曼編碼,,復(fù)習(xí) 知識點(diǎn)引入 哈夫曼樹相關(guān)定義 哈夫曼樹構(gòu)造 哈夫曼編碼,13/39,內(nèi)容提要,復(fù)習(xí) 知識點(diǎn)引入 哈夫曼樹相關(guān)定義 哈夫曼樹構(gòu)造 哈夫曼編碼,,復(fù)習(xí) 知識點(diǎn)引入 哈夫曼樹相關(guān)定義 哈夫曼樹構(gòu)造 哈夫曼編碼,14/39,,構(gòu)造方法 1,假設(shè)給定n個權(quán)值的結(jié)點(diǎn)構(gòu)造:,復(fù)習(xí) 知識點(diǎn)引入 哈夫曼樹相關(guān)定義 哈夫曼樹構(gòu)造 哈夫曼編碼,(1):n個結(jié)點(diǎn)看成n顆樹F (2):在F中選取兩個最小的結(jié)點(diǎn),作為左 右子樹,且根結(jié)點(diǎn)的權(quán)值等于左右子 樹權(quán)值之和 (3):在F中刪除這兩顆樹,并把剛得到的 二叉樹加入F中 (4):重復(fù)(2)-(3),一棵樹結(jié)束,1

6、5/39,,構(gòu)造方法 2,復(fù)習(xí) 知識點(diǎn)引入 哈夫曼樹相關(guān)定義 哈夫曼樹構(gòu)造 哈夫曼編碼,例,已知權(quán)值 W= 5, 6, 2, 9, 7 ,9,5,6,2,7,5,2,,,7,6,9,7,6,7,13,,,9,16/39,,構(gòu)造方法 3,復(fù)習(xí) 知識點(diǎn)引入 哈夫曼樹相關(guān)定義 哈夫曼樹構(gòu)造 哈夫曼編碼,例,9,16,,,29,,,5個葉子結(jié)點(diǎn),構(gòu)造后有多少個結(jié)點(diǎn)?,17/39,,構(gòu)造算法 1,復(fù)習(xí) 知識點(diǎn)引入 哈夫曼樹相關(guān)定義 哈夫曼樹構(gòu)造 哈夫曼編碼,思考,有度為1的結(jié)點(diǎn)嗎?,n個葉子結(jié)點(diǎn)構(gòu)造的哈夫曼樹有多少結(jié)點(diǎn)?,算法,數(shù)組 HT1m 存放結(jié)點(diǎn) 其中 m=2n-1 前n 個(1 n)

7、為葉結(jié)點(diǎn) 最后一個為根結(jié)點(diǎn) 數(shù)組 HC 1n 存放編碼,18/39,,構(gòu)造算法 2,復(fù)習(xí) 知識點(diǎn)引入 哈夫曼樹相關(guān)定義 哈夫曼樹構(gòu)造 哈夫曼編碼,算法,void HuffmanCoding (HuffmanTree ,例:設(shè)n=5, w=5,6,2,9,7,試設(shè)計(jì) huffman (m=2*5-1=9),19/39,,構(gòu)造算法 2,復(fù)習(xí) 知識點(diǎn)引入 哈夫曼樹相關(guān)定義 哈夫曼樹構(gòu)造 哈夫曼編碼,5,2,,,7,6,9,7,6,7,13,,,9,,1,3,6,1,3,6,7,3,1,2,5,7,20/39,,構(gòu)造算法 3,復(fù)習(xí) 知識點(diǎn)引入 哈夫曼樹相關(guān)定義 哈夫曼樹構(gòu)造

8、哈夫曼編碼,,1,9,16,,,29,,,3,6,2,5,7,4,8,9,7 8 1 3,13 9 2 5,16 9 4 6,29 0 7 8,6 7 6 8 7,21/39,,構(gòu)造算法 4,復(fù)習(xí) 知識點(diǎn)引入 哈夫曼樹相關(guān)定義 哈夫曼樹構(gòu)造 哈夫曼編碼,for( i=n+1;i<=m;++i) //構(gòu)造 Huffman樹 Select(HT,i-1, s1, s2); //在HTk(1ki-1)中選擇兩個其雙親域?yàn)?, // 且權(quán)值最小的結(jié)點(diǎn), // 并返回它們在HT中的序號s1和s2 HTs1.parent=i; HTs2 .parent=i

9、; //表示從F中刪除s1,s2 HTi.lch=s1; HTi.rch=s2 ; //s1,s2分別作為i的左右孩子 HTi.weight=HTs1.weight + HTs2 .weight; //i 的權(quán)值為左右孩子權(quán)值之和 ,22/39,內(nèi)容提要,復(fù)習(xí) 知識點(diǎn)引入 哈夫曼樹相關(guān)定義 哈夫曼樹構(gòu)造 哈夫曼編碼,,復(fù)習(xí) 知識點(diǎn)引入 哈夫曼樹相關(guān)定義 哈夫曼樹構(gòu)造 哈夫曼編碼,23/39,內(nèi)容提要,復(fù)習(xí) 知識點(diǎn)引入 哈夫曼樹相關(guān)定義 哈夫曼樹構(gòu)造 哈夫曼編碼,,復(fù)習(xí) 知識點(diǎn)引入 哈夫曼樹相關(guān)定義 哈夫曼樹構(gòu)造 哈夫曼編碼,24/39,,HFM編碼,復(fù)習(xí) 知識點(diǎn)引入 哈夫曼樹相關(guān)定義

10、哈夫曼樹構(gòu)造 哈夫曼編碼,9,16,,,29,,,0,0,0,0,1,1,1,1,00,01,11,100,101,25/39,,HFM編碼,復(fù)習(xí) 知識點(diǎn)引入 哈夫曼樹相關(guān)定義 哈夫曼樹構(gòu)造 哈夫曼編碼,//從葉子到根逆向求每個字符的哈夫曼編碼 HC=new CodeNoden+1;cd=new charn; cdn-1=0;//編碼結(jié)束符 for(i=1;i<=n;++i) //依次求各葉子的編碼 start=n-1;//編碼起始位置 for(c=i,f=HTi.parent;f!=0;c=f,f=HTf.parent) if(HTf.lch==c)cd--start=0; els

11、e cd--start=1; HCi.bits=new charn-start; //為第i個葉子分配空間 strcpy(HCi.bits, ,26/39,,哈夫曼應(yīng)用,復(fù)習(xí) 知識點(diǎn)引入 哈夫曼樹相關(guān)定義 哈夫曼樹構(gòu)造 哈夫曼編碼,已知某相同在通信聯(lián)絡(luò)中只可能出現(xiàn)8種可能字符,其概率分別為0.05,0.29,0.07,0.08,0.14,0.23,0.03,0.11.假設(shè)待發(fā)報(bào)文長度為100個字符,請選擇最短報(bào)文,并計(jì)算發(fā)送報(bào)文的長度。,例,27/39,謝謝 !,歡迎通過數(shù)據(jù)結(jié)構(gòu)精品課程網(wǎng)站 http://210.45.168.34:8080/08/sjjg/Learning/SelfLearningDS/index.asp,,Thanks for Your Attention,

展開閱讀全文
溫馨提示:
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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號:ICP2024067431-1 川公網(wǎng)安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!