版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
第六章哈夫曼樹及應(yīng)用本講內(nèi)容1.哈夫曼樹的定義2.哈夫曼樹的構(gòu)建及算法實(shí)現(xiàn)3.哈夫曼編碼及算法實(shí)現(xiàn)哈夫曼樹的定義帶權(quán)路徑長度最小的二叉樹,稱為“最優(yōu)二叉樹”,或哈夫曼樹。?如何計(jì)算樹的帶權(quán)路徑長度?樹中所有葉子結(jié)點(diǎn)的帶權(quán)路徑長度之和。記作,WPL=wklk
。?如何計(jì)算葉子結(jié)點(diǎn)的帶權(quán)路徑長度?結(jié)點(diǎn)的權(quán)值乘以該結(jié)點(diǎn)的路徑長度。從根結(jié)點(diǎn)到該結(jié)點(diǎn)的路徑上的分支數(shù)目。路徑長度27975492WPL(T)=72+52+23+43+92=60WPL(T)=74+94+53+42+21=8954哈夫曼樹的構(gòu)建如何構(gòu)建哈夫曼樹?問題:根據(jù)給定的n個(gè)權(quán)值{w1,w2,…,wn},構(gòu)造一棵以這些權(quán)值為葉子的哈夫曼樹。哈夫曼算法思想①根據(jù)給定的n個(gè)權(quán)值{w1,w2,…,wn}構(gòu)成n棵二叉樹的集合F={T1,T2,…,Tn},其中每棵二叉樹Ti只有權(quán)值為Wi的根結(jié)點(diǎn),其左右子樹為空。②在F中選取兩棵根結(jié)點(diǎn)的權(quán)值最小的二叉樹作為左右子樹構(gòu)造一棵新二叉樹,新二叉樹根結(jié)點(diǎn)的權(quán)值為其左右子樹上根結(jié)點(diǎn)的權(quán)值之和。③在F中刪除這兩棵二叉樹,同時(shí)將新得到的二叉樹加入F中。④重復(fù)②和③
,直到F中只剩一棵二叉樹為止。9例如:已知權(quán)值W={5,6,2,9,7}5627527697671395276713952795271667132900001111000110110111哈夫曼編碼前綴編碼任何一個(gè)字符的編碼都不是同一字符集中另一個(gè)字符的編碼的前綴。a:110b:00c:111d:10e:01前綴編碼利用哈夫曼樹可以構(gòu)造一種不等長的二進(jìn)制編碼,并且構(gòu)造所得的哈夫曼編碼是一種最優(yōu)前綴編碼。從根到葉子的路徑構(gòu)成葉子的前綴編碼。哈夫曼編碼有八種字符:abcdefgh,其在通信聯(lián)絡(luò)中出現(xiàn)的概率分別為:0.050.290.070.080.140.230.030.11,試設(shè)計(jì)哈夫曼遍碼。設(shè)權(quán)值w={5,29,7,8,14,23,3,11}n=8
構(gòu)造過程:52978142331153829781423117815292311141119291423142929232342295810000000001111111a:0000b:11c:1000d:1001e:101f:01g:0001h:001算法演示例:字符及權(quán)值如下,A(6),B(7),C(1),D(5),E(2),F(8),構(gòu)建哈夫曼樹并計(jì)算哈夫曼編碼,求WPL。icweightparentlchildrchildcode1234567891011ABCDEF671528000000000000000000000000000000000000000000000000033577847881312991668101029910111101001011011338CEABD16F290100101101從根到葉子結(jié)點(diǎn)的路徑上編碼序列構(gòu)成葉子結(jié)點(diǎn)的哈夫曼編碼。A:00B:01C:1110D:110E:1111F:10打印葉子結(jié)點(diǎn)的哈夫曼編碼時(shí),逆序(從根到葉子)打印哈夫曼樹中每個(gè)結(jié)點(diǎn)的編碼。哈夫曼算法實(shí)現(xiàn)n個(gè)字符c[1..n]權(quán)值分別為w[1..n]weight[1..2n-1]為各結(jié)點(diǎn)的權(quán)值parent[1..2n-1]為各結(jié)點(diǎn)的雙親lchild[1..2n-1]為各結(jié)點(diǎn)的左孩子rchild[1..2n-1]為各結(jié)點(diǎn)的右孩子code[1..2n-1]為各結(jié)點(diǎn)最后一位編碼(左孩子為0,右孩子為1)含有n個(gè)葉子結(jié)點(diǎn)的哈夫曼樹共有(2*n-1)個(gè)結(jié)點(diǎn)。voidhuffman(charc[],intw[],intn,intweight[],intparent[],intlchild[],intrchild[],intcode[]){ if(n<2)return;
//初始化
for(i=1;i<2*n;i++)weight[i]=(i<=n?w[i]:0); for(i=1;i<2*n;i++)parent[i]=lchild[i]=rchild[i]=0; for(i=1;i<2*n;i++)code[i]=0;
//構(gòu)造赫夫曼樹
//計(jì)算赫夫曼編碼
for(i=1;i<2*n;i++) if(parent[i]!=0) code[i]=lchild[parent[i]]==i?0:1;}……//構(gòu)造赫夫曼樹for(i=n+1;i<2*n;i++){
//在weight[1..i-1]中選擇兩個(gè)根結(jié)點(diǎn)權(quán)值最小的二叉樹l和r
select2min(weight,parent,i,l,r);
//以l和r分別作為左右子樹構(gòu)造根結(jié)點(diǎn)為i的二叉樹
weight[i]=weight[l]+weight[r]; lchild[i]=l; rchild[i]=r; parent[l]=parent[r]=i;}
void
select2min(intweight[],intparent[],inti,int&l,int&r){intj;l=r=0;j=1;while(j<i&&parent[j]!=0) j++;l=j;for(j=j+1;j<i;j++)if(parent[j]==0&&weight[j]<weight[l])l=j;j=1;while(j<i&&(parent[j]!=0||j==l)) j++;r=j;for(j=j+1;j<i;j++)if(parent[j]==0&&j!=l&&weight[j]<weight[r])r=j;if(l>r){j=l;l=r;r=j;}}最小權(quán)值次小權(quán)值練習(xí)1、以數(shù)據(jù)集{2,5,7,9,13}為權(quán)值構(gòu)造一棵Huffman樹,并計(jì)算其帶權(quán)路徑長度。2、給定30個(gè)字符組成的電文:DD
溫馨提示
- 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年度企業(yè)勞動合同勞動合同履行及變更管理細(xì)則3篇
- 2024年服務(wù)合同保證書
- 2024年窯爐生產(chǎn)設(shè)備購買與安裝合同3篇
- 2024年度土地承包經(jīng)營權(quán)與現(xiàn)代農(nóng)業(yè)技術(shù)合作合同范本3篇
- 2025訂貨合同印刷品訂貨合同
- 2025培訓(xùn)機(jī)構(gòu)教師正式合同正文
- 楓溪小學(xué)班級管理溝通制度
- 科技公司彈性請休假制度設(shè)計(jì)
- 手術(shù)室安全操作制度
- 企業(yè)責(zé)任與未成年人案件強(qiáng)制報(bào)告制度
- 2024年金華市婺州糧食收儲限公司公開招聘工作人員高頻難、易錯(cuò)點(diǎn)500題模擬試題附帶答案詳解
- 服裝設(shè)計(jì)基礎(chǔ)學(xué)習(xí)通超星期末考試答案章節(jié)答案2024年
- 鑄造車間管理和獎(jiǎng)懲制度
- 蝸牛與黃鸝鳥(課件)人音版音樂二年級上冊
- 知識論導(dǎo)論:我們能知道什么?學(xué)習(xí)通超星期末考試答案章節(jié)答案2024年
- 安徽省示范高中培優(yōu)聯(lián)盟2024-2025學(xué)年高二數(shù)學(xué)冬季聯(lián)賽試題文含解析
- 天津市勘察設(shè)計(jì)院集團(tuán)有限公司招聘筆試題庫2024
- 2021-2022學(xué)年統(tǒng)編版道德與法治五年級上冊全冊單元測試題及答案(每單元1套共6套)
- 石油鉆采設(shè)備招標(biāo)合同三篇
- 婚介合同協(xié)議書
- 2024屆廣東省廣州市高三上學(xué)期調(diào)研測試數(shù)學(xué)試題及答案
評論
0/150
提交評論