數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)三哈夫曼樹實(shí)驗(yàn)報(bào)告(共11頁(yè)).doc
《數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)三哈夫曼樹實(shí)驗(yàn)報(bào)告(共11頁(yè)).doc》由會(huì)員分享,可在線閱讀,更多相關(guān)《數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)三哈夫曼樹實(shí)驗(yàn)報(bào)告(共11頁(yè)).doc(11頁(yè)珍藏版)》請(qǐng)?jiān)趨R文網(wǎng)上搜索。
1、精選優(yōu)質(zhì)文檔-傾情為你奉上題目:哈夫曼編/譯碼器 一、 題目要求:寫一個(gè)哈夫曼碼的編/譯碼系統(tǒng),要求能對(duì)要傳輸?shù)膱?bào)文進(jìn)行編碼和解碼。構(gòu)造哈夫曼樹時(shí),權(quán)值小的放左子樹,權(quán)值大的放右子樹,編碼時(shí)右子樹編碼為1,左子樹編碼為0.二、 概要設(shè)計(jì):數(shù)據(jù)結(jié)構(gòu):typedef struct int bitMAXBIT; int start; HCodeType; /* 編碼結(jié)構(gòu)體 */typedef struct int weight; int parent; int lchild; int rchild; char value; HNode; /* 結(jié)點(diǎn)結(jié)構(gòu)體 */函數(shù): void DEMONHuffma
2、nTree (HNode HuffNodeMAXNODE, int n)作用:構(gòu)造一個(gè)哈夫曼樹,并循環(huán)構(gòu)建int main ()作用:運(yùn)用已經(jīng)構(gòu)建好的哈弗曼樹,進(jìn)行節(jié)點(diǎn)的處理,達(dá)到成功解碼編譯三、 詳細(xì)設(shè)計(jì):哈夫曼樹的建立:void DEMONHuffmanTree (HNode HuffNodeMAXNODE, int n) int i = 0, j, m1, m2, x1, x2; char x; /* 初始化存放哈夫曼樹數(shù)組 HuffNode 中的結(jié)點(diǎn) */ while (i<n) HuffNodei.weight = 0;/權(quán)值 HuffNodei.parent =-1; Huf
3、fNodei.lchild =-1; HuffNodei.rchild =-1;scanf("%c",&x); scanf("%c",&HuffNodei.value); /實(shí)際值,可根據(jù)情況替換為字母 i+; /* 輸入 n 個(gè)葉子結(jié)點(diǎn)的權(quán)值 */scanf("%c",&x);for(i=0;i<n;i+) scanf ("%d", &HuffNodei.weight); for (i=n; i<2*n-1; i+) HuffNodei.weight = 0;/權(quán)值 H
4、uffNodei.parent =-1; HuffNodei.lchild =-1; HuffNodei.rchild =-1; HuffNodei.value=i; /* 循環(huán)構(gòu)造 Huffman 樹 */ for (i=0; i<n-1; i+) m1=m2=MAXQZ; / m1、m2中存放兩個(gè)無(wú)父結(jié)點(diǎn)且結(jié)點(diǎn)權(quán)值最小的兩個(gè)結(jié)點(diǎn) x1=x2=0;/找出所有結(jié)點(diǎn)中權(quán)值最小、無(wú)父結(jié)點(diǎn)的兩個(gè)結(jié)點(diǎn),并合并之為一顆二叉樹 for (j=0; j<n+i; j+) if (HuffNodej.weight < m1 && HuffNodej.parent=-1) m2
5、=m1;/m1中是最小 x2=x1; m1=HuffNodej.weight; x1=j; else if (HuffNodej.weight < m2 && HuffNodej.parent=-1) m2=HuffNodej.weight; x2=j; /* end for */ /* 設(shè)置找到的兩個(gè)子結(jié)點(diǎn) x1、x2 的父結(jié)點(diǎn)信息 */ HuffNodex1.parent = n+i; HuffNodex2.parent = n+i; HuffNoden+i.weight = HuffNodex1.weight + HuffNodex2.weight; HuffNod
- 1.請(qǐng)仔細(xì)閱讀文檔,確保文檔完整性,對(duì)于不預(yù)覽、不比對(duì)內(nèi)容而直接下載帶來(lái)的問(wèn)題本站不予受理。
- 2.下載的文檔,不會(huì)出現(xiàn)我們的網(wǎng)址水印。
- 3、該文檔所得收入(下載+內(nèi)容+預(yù)覽)歸上傳者、原創(chuàng)作者;如果您是本文檔原作者,請(qǐng)點(diǎn)此認(rèn)領(lǐng)!既往收益都?xì)w您。
下載文檔到電腦,查找使用更方便
20 積分
下載 | 加入VIP,下載共享資源 |
- 配套講稿:
如PPT文件的首頁(yè)顯示word圖標(biāo),表示該P(yáng)PT已包含配套word講稿。雙擊word圖標(biāo)可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國(guó)旗、國(guó)徽等圖片,僅作為作品整體效果示例展示,禁止商用。設(shè)計(jì)者僅對(duì)作品中獨(dú)創(chuàng)性部分享有著作權(quán)。
- 關(guān) 鍵 詞:
- 數(shù)據(jù)結(jié)構(gòu) 實(shí)驗(yàn) 三哈夫曼樹 報(bào)告 11
鏈接地址:http://zhizhaikeji.com/p-5588471.html