哈弗曼編譯碼器 (羅忠霖)

哈弗曼編譯碼器 (羅忠霖)

ID:15925878

大小:210.50 KB

頁(yè)數(shù):10頁(yè)

時(shí)間:2018-08-06

哈弗曼編譯碼器 (羅忠霖)_第1頁(yè)
哈弗曼編譯碼器 (羅忠霖)_第2頁(yè)
哈弗曼編譯碼器 (羅忠霖)_第3頁(yè)
哈弗曼編譯碼器 (羅忠霖)_第4頁(yè)
哈弗曼編譯碼器 (羅忠霖)_第5頁(yè)
資源描述:

《哈弗曼編譯碼器 (羅忠霖)》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫(kù)。

1、2010級(jí)計(jì)算機(jī)科學(xué)與技術(shù)專(zhuān)業(yè)集美大學(xué)計(jì)算機(jī)工程學(xué)院2011~2012學(xué)年第一學(xué)期《數(shù)據(jù)結(jié)構(gòu)》實(shí)驗(yàn)報(bào)告題目:實(shí)驗(yàn)五哈夫曼編/譯碼器學(xué)號(hào):2010810072成績(jī)班級(jí):計(jì)算1013日期:2011.11.15姓名:羅忠霖指導(dǎo)老師:楊艷華一、實(shí)驗(yàn)?zāi)康模罕敬蔚膶?shí)驗(yàn)?zāi)康脑谟谑棺x者深入了解樹(shù)的特性,以便在實(shí)際問(wèn)題背景下靈活運(yùn)用他們;同時(shí)還將鞏固掌握對(duì)樹(shù)結(jié)構(gòu)的構(gòu)造方法的理解,并且回顧文件操作的使用。二、實(shí)驗(yàn)環(huán)境:本次試驗(yàn)在VC++環(huán)境下調(diào)試。三、實(shí)驗(yàn)內(nèi)容與完成情況:1.問(wèn)題描述利用哈夫曼編碼進(jìn)行通信可以大大提高信道利用率,縮短信息傳輸

2、的時(shí)間,降低傳輸成本。但是這要求在發(fā)送端通過(guò)一個(gè)編碼系統(tǒng)對(duì)待傳數(shù)據(jù)預(yù)先編碼,在接收端將傳來(lái)的數(shù)據(jù)進(jìn)行譯碼。對(duì)于雙工信道,每端都需要一個(gè)完整的編/譯碼系統(tǒng)。試為這樣的信息收發(fā)站寫(xiě)一個(gè)哈夫曼碼的編/譯碼系統(tǒng)。2.基本要求一個(gè)完整的系統(tǒng)應(yīng)具有以下功能:(1)初始化,構(gòu)造哈弗曼樹(shù)。(2)編碼。(3)譯碼。(4)印代碼文件。(5)印哈弗曼樹(shù)。3.程序代碼#include#include#include#includetypedefstruct{charch

3、r1;intweight;intparent,lchild,rchild;}HTNode,*HuffmanTree;typedefstruct{charchr;intw1;char*code;//編碼}Ch;//字符和對(duì)應(yīng)的權(quán)值及編碼voidSelect(HuffmanTree&HT1,intj,int&s1,int&s2);voidHuffmanCoding(HuffmanTree&HT,Ch*w,intn);//構(gòu)造哈夫曼樹(shù)HT102010級(jí)計(jì)算機(jī)科學(xué)與技術(shù)專(zhuān)業(yè)集美大學(xué)計(jì)算機(jī)工程學(xué)院2011~2012學(xué)年第一學(xué)期vo

4、idencoding(HuffmanTree&HT,Ch*ch,intn);//求每個(gè)字符的哈夫曼編碼voidEncoding(Ch*ch1,intn);//編碼voidDecoding(HuffmanTree&HT,intsum);//譯碼voidcaidan();voidPrintf();voidmain(){FILE*p;intchoice,n1,w2=1;inti,flag=1,m;charch;HuffmanTreeHTr;Ch*c;caidan();while(flag){loop:printf("*請(qǐng)選

5、擇(0-5):");scanf("%d",&choice);switch(choice){case1:printf("請(qǐng)輸入字符集大小n=");scanf("%d",&n1);c=(Ch*)malloc((n1+1)*sizeof(Ch));flushall();for(i=1;i<=n1;i++){printf("請(qǐng)輸入字符及其權(quán)值:");scanf("%c%d",&ch,&w2);c[i].chr=ch;c[i].w1=w2;flushall();}HuffmanCoding(HTr,c,n1);encoding(H

6、Tr,c,n1);break;case2:Encoding(c,n1);break;case3:Decoding(HTr,n1);break;case4:Printf();break;case5:m=2*n1-1;if((p=fopen("TreePrint.txt","w"))==NULL)printf("Filecouldnotbeopened");else{fprintf(p,"哈夫曼樹(shù)的構(gòu)造如下所示:");fprintf(p,"結(jié)點(diǎn)weightparentlchildrchild");for(i=1;

7、i<=m;i++){fprintf(p,"%4d%8d%8d%8d%8d",i,HTr[i].weight,102010級(jí)計(jì)算機(jī)科學(xué)與技術(shù)專(zhuān)業(yè)集美大學(xué)計(jì)算機(jī)工程學(xué)院2011~2012學(xué)年第一學(xué)期HTr[i].parent,HTr[i].lchild,HTr[i].rchild);}}fclose(p);printf("哈夫曼樹(shù)的構(gòu)造如下所示:");printf("結(jié)點(diǎn)weightparentlchildrchild");for(i=1;i<=m;i++){printf("%4d%8d%8d%8d%8d",

8、i,HTr[i].weight,HTr[i].parent,HTr[i].lchild,HTr[i].rchild);}break;case0:flag=0;printf("你選擇了推出程序,歡迎使用!");break;default:gotoloop;}}}voidcaidan(){printf("****

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫(huà)的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無(wú)此問(wèn)題,請(qǐng)放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫(kù)負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭(zhēng)議請(qǐng)及時(shí)聯(lián)系客服。
3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無(wú)法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請(qǐng)聯(lián)系客服處理。