哈夫曼編譯碼器課程設計報告(完整版)_第1頁
哈夫曼編譯碼器課程設計報告(完整版)_第2頁
哈夫曼編譯碼器課程設計報告(完整版)_第3頁
哈夫曼編譯碼器課程設計報告(完整版)_第4頁
哈夫曼編譯碼器課程設計報告(完整版)_第5頁
已閱讀5頁,還剩7頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、XXX學院本科數據結構課程設計總結報告設計題目 : 實驗一、哈夫曼編 / 譯碼器 學生姓名 : XXX系 別: XXX專 業(yè): XXX班 級: XXX學 號: XXX指導教師 : XXX XXXxxx 學院課程設計任務書題目 一、赫夫曼編譯碼器專業(yè)、班級 xxx學號 xxx 姓名 xxx主要內容、基本要求、主要參考資料等:1. 主要內容利用哈夫曼編碼進行信息通信可大大提高信道利用率, 縮短信息傳輸時間, 降低 傳輸成本。 要求在發(fā)送端通過一個編碼系統(tǒng)對待傳數據預先編碼; 在接收端將傳 來的數據進行譯碼(復原) 。對于雙工信道(既可以雙向傳輸信息的信道) ,每端 都需要一個完整的編 / 譯碼系統(tǒng)

2、。試為這樣的信息收發(fā)站寫一個哈夫曼的編 / 譯碼 系統(tǒng)。2. 基本要求系統(tǒng)應具有以下功能:( 1) C:編碼( Coding)。對文件 tobetrans 中的正文進行編碼,然后將結果存 入文件 codefile 中,將以此建好的哈夫曼樹存入文件 HuffmanTree 中 (2)D:解碼(Decoding )。利用已建好的哈夫曼樹將文件 codefile 中的代碼進 行譯碼,結果存入 textfile 中。( 3) P:打印代碼文件( Print )。將文件 codefile 以緊湊格式顯示在終端上, 每行 50 個代碼。同時將此字符形式的編碼文件寫入文件 codeprint 中。( 4)

3、T:打印哈夫曼樹( Tree Printing )。將已在內存中的哈夫曼樹以直觀的方 式(樹或凹入表形式)顯示在終端上,同時將此字符形式的哈夫曼樹寫入文件 treeprint 中。3. 參考資料:數據結構( C 語言版) 嚴蔚敏、吳偉民編著;數據結構標準教程 胡超、閆寶玉編著 完 成 期 限: 2012 年 6 月 21 日 指導教師簽名:課程負責人簽名:2012 年 6 月 21 日一、設計題目(任選其一)實驗一、哈夫曼編 / 譯碼器二、實驗目的1 鞏固和加深對數據結構的理解,提高綜合運用本課程所學知識的能力;2 深化對算法課程中基本概念、理論和方法的理解;3 鞏固構造赫夫曼樹的算法;4 設

4、計試驗用程序實驗赫夫曼樹的構造。三、運行環(huán)境(軟、硬件環(huán)境)Windows xp sp3 ,Visual C+ 英文版四、算法設計的思想 (1)初始化赫夫曼樹,輸入文件中各字符及其權值,并保存于文件中( 2)編碼( Coding)。對文件 tobetrans 中的正文進行編碼,然后將結果存入文 件 codefile 中(3)D:解碼(Decoding )。利用已建好的哈夫曼樹將文件 codefile 中的代碼進 行譯碼,結果存入 textfile 中。( 4) P:打印代碼文件( Print )。將文件 codefile 以緊湊格式顯示在終端上, 每行 50 個代碼。同時將此字符形式的編碼文件

5、寫入文件 codeprint 中。( 5) T:打印哈夫曼樹( Tree Printing )。將已在內存中的哈夫曼樹以直觀的方 式顯示在終端上,同時將此字符形式的哈夫曼樹寫入文件 treeprint 中。五、流程圖六、算法設計分析1. 赫夫曼樹節(jié)點的數據類型定義為:typedef structvoid HuffmanCoding(HuffmanTree &,char *,int*,int); 建立赫 夫曼樹的算法 ,此函數 塊調用了 Select ( ) 函數。 void select(HuffmanTree HT,int j,int *x,int *y);從已建好的赫夫曼樹中選擇p

6、arent 為 0,weight 最小的兩個結點。3利用已建好的哈夫曼樹從文件中讀入,對文件中的正文進行編碼,然后將結 果存入文件中。4. coding編碼功能:對輸入字符進行編碼5. Decoding譯碼功能: 利用已建好的哈夫曼樹將文件中的代碼進行譯碼, 結果存入文件 中。6. Print() 打印功能函數:輸出哈夫曼樹以及對應的編碼。七、源代碼arent=i;HTy.parent=i;HTi.lchild=x;HTi.rchild=y;HTi.weight=HTx.weight+HTy.weight;arent=0)*x=i;break;for (;i<=j;i+)if (HTi.

7、parent=0)&&(HTi.weight<HT*x.weight)*x=i;HT*x.parent=1;arent=0)*y=i;break;for (;i<=j;i+)if (HTi.parent=0)&&(i!=*x)&&(HTi.weight<HT*y.weight) *y=i;arent;f!=0;c=f,f=HTf.parent) if(HTf.lchild=c) cd-start='0'else cd-start='1'HCi=(char *)malloc(n-start)*siz

8、eof(char); strcpy(HCi,&cdstart);free(cd);if(fp=fopen("","rb")=NULL)printf("Open file error!n");if(fw=fopen("","wb+")=NULL)printf("Open file error!n");char temp;child,m);fscanf(fp,"%c",&temp); h=temp) break; child,m); child

9、,m); child=0&&HTi.rchild=0) h; child,m); child,m); child,m); eight;if(HTj.lchild)Convert_tree(T,s+1,i,HTj.lchild);if(HTj.rchild)Convert_tree(T,s+1,i,HTj.rchild);Tl+k='0'請選擇擦乍c.9Cz Docuaent x nncl Sett mxkuxer tt|Debua. exe'3譯怙也印B?E.出將之件hf ruuoo lxt成功綿嗎井己存人codafilo txt 口 IT引始化祐夫吳穌

10、區(qū)師馬.亠."丁和代碣文什愈赫天曼粒R Hj.己祜5托訂匕皿文仟成功譯碼 兵己存入CextTile.txt文件I詩迭擇探作s *C;DociiBcnt s nnd Sett ing3u5cr-l1Drbiiea. cmk叮即己母好的冊夫曼洌:16631210己舟玄手待形式的哈夫矣知寫Afftrerprint|樹 曼 件 夫 文nr 八117 9卩 A z引編詳叮HTy.parent = i;HTi.lchild = x; HTi.rchild = y;HTi.weight = HTx.weight + HTy.weight;arent = 0)*x = i; break ;for (

11、; i <=j ; i+)if ( HTi.parent = 0) && ( HTi.weight< HT* x.weight)*x = i;HT* x.parent = 1;arent = 0)*y = i; break ;for (; i <=j ; i+)if ( HTi.parent = 0) && (i != * x) && ( HTi.weight< HT* y.weight) *y = i;arent; f != 0; c = f, f = HTf.parent)if (HTf.lchild = c)cd-s

12、tart ='0' ;else cd-start ='1' ;HCi = ( char *)malloc(n - start) * sizeof (char ); strcpy(HCi, &cdstart);free(cd);if (fp = fopen( "" , "rb" ) = NULL)printf( "Open file error!n");if (fw = fopen( "" , "wb+" ) = NULL)printf( "Open file error!n");char temp;fscanf(fp, "%c", &temp); h = temp) break ; child, m); child, m); child = 0 && HTi.rchild

溫馨提示

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

評論

0/150

提交評論