版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、<p> 數據結構課程設計報告</p><p> 題 目: 哈夫曼編/譯碼器</p><p> 院系名稱: 計算機學院</p><p> 專業(yè)名稱: 軟件工程</p><p> 班 級: 1101班</p><p> 學生姓名:
2、 </p><p> 學號(8位): </p><p> 指導教師: </p><p> 設計起止時間:2012年12月3日~2012年12月14日</p><p><b> 一. 設計目的</b></p><p> 1.鞏固和加深對數據結構的理解,提高綜合運用
3、本課程所學知識的能力;</p><p> 2.深化對算法課程中基本概念、理論和方法的理解;</p><p> 3.鞏固構造哈夫曼樹的算法;</p><p> 4.設計試驗用程序實驗哈夫曼樹的構造,編碼和譯碼。</p><p><b> 二. 設計內容</b></p><p> 利用哈夫曼
4、編碼進行信息通信可以大大提高信道利用率,縮短信息傳輸時間,降低傳輸成本。但是,這要求在發(fā)送端通過一個編碼系統(tǒng)對待傳數據預先編碼,在接收端將傳來的數據進行譯碼(復原)。試為這樣的信息收發(fā)站寫一個哈夫曼的編/譯碼器。</p><p><b> 三.概要設計</b></p><p><b> 1.功能模塊圖;</b></p><
5、p> 2.各個模塊詳細的功能描述。</p><p><b> ?。?)主程序模塊</b></p><p><b> 打印菜單;</b></p><p> 讓用戶選擇是編碼還是譯碼;</p><p> 讓用戶決定是否觀看一些信息。</p><p><b>
6、; 密碼模塊</b></p><p> void Login()</p><p> 密碼函數,用戶輸入用戶名和密碼,密碼正確方能進入系統(tǒng),否則重新輸入。</p><p><b> ?。?)編碼模塊</b></p><p> void OpenSourceFile(char s[])</p>
7、;<p> 打開源文件,并將其內容存到s[]中</p><p> void Code(char s[],char str[],char code[],int freq[],HFMTree *HT,CodeNode HC[])</p><p> 編碼函數,調用編碼所需的所有函數</p><p> void Search(char s[],char
8、 str[],int freq[])</p><p> 查找各個字符,將其存到str[]中,并統(tǒng)計其出現的頻數,即權值,存放在freq[]中</p><p> void CreateHFMTree(HFMTree *HT,int freq[])</p><p><b> 創(chuàng)建哈夫曼樹</b></p><p> v
9、oid HFMCode(HFMTree HT,CodeNode HC[],char str[])</p><p> 按左0右1的順序進行編碼</p><p> AllCode(s,HC,code)</p><p> 將所有字符的編碼連起來,存放到code[]中</p><p> Save(code)</p><p&
10、gt; 將編碼結果保存到文件code.txt中</p><p><b> ?。?)譯碼模塊</b></p><p> void DeCode(char code[],char str[],char ss[],HFMTree *HT,CodeNode HC[]) </p><p> 譯碼函數,調用譯碼所需的所有函數</p>&
11、lt;p> void OpenCodeFile(char code[])</p><p><b> 打開編碼文件</b></p><p> Decoding(code,*HT,str,ss)</p><p> 從根結點開始按編碼順序進行譯碼</p><p><b> Save(ss)</b
12、></p><p> 將譯碼結果保存到文件decode.txt中</p><p><b> 四.詳細設計</b></p><p> 1.功能函數的調用關系圖</p><p> 2.各功能函數的數據流程圖</p><p> (1)創(chuàng)建哈夫曼樹函數</p><p&g
13、t;<b> 是</b></p><p><b> 否</b></p><p><b> 否</b></p><p><b> 是</b></p><p><b> ?。?)編碼函數</b></p><p&
14、gt;<b> 是</b></p><p><b> 否</b></p><p><b> 是</b></p><p> 是 否</p><p><b> 3.重點設計及編碼</b></p>
15、;<p><b> ?。?)密碼設計:</b></p><p> void Login()</p><p><b> {</b></p><p> char username[15];</p><p> char password[9];</p><p>
16、;<b> char c;</b></p><p> int i = 0;</p><p> printf("\n\n請輸入用戶名:");</p><p> gets(username);</p><p> printf("\n請輸入密碼:");</p>&
17、lt;p> while ((c=getch())!='\r')</p><p><b> {</b></p><p> if (i<8 && isprint(c))</p><p><b> {</b></p><p> password[i++
18、] = c;</p><p> putchar('*');</p><p><b> }</b></p><p><b> }</b></p><p> putchar('\n');</p><p> password[i] =
19、39;\0';</p><p> if(!(strcmp(password,"04113027")))</p><p><b> {</b></p><p> printf("\n\n恭喜您,登陸成功!\n\n歡迎使用該系統(tǒng)!\n\n");</p><p> sys
20、tem("pause");</p><p><b> }</b></p><p><b> else</b></p><p><b> {</b></p><p> printf("\n\n密碼錯誤,您無權使用該系統(tǒng)!\n\n請重新輸入!
21、\n\n");</p><p> system("pause");</p><p> system("cls");</p><p><b> Login();</b></p><p><b> }</b></p><p&
22、gt;<b> }</b></p><p><b> 創(chuàng)建哈夫曼樹:</b></p><p> void CreateHFMTree(HFMTree *HT,int freq[])</p><p><b> {</b></p><p><b> int i
23、;</b></p><p> HFMTree p,HT1,HT2;</p><p> p=*HT=(HFMTree)malloc(sizeof(HFMNode)); </p><p> p->next=p->LChild=p->RChild=p->Parent=NULL;</p><p> for
24、(i=1;i<2*n-1;i++)</p><p><b> {</b></p><p> p->next=(HFMTree)malloc(sizeof(HFMNode));</p><p> p=p->next;</p><p> p->next=p->LChild=p->
25、RChild=p->Parent=NULL;</p><p><b> }</b></p><p> for(i=0,p=*HT;i<n;i++)</p><p><b> {</b></p><p> p->weight=freq[i];</p><
26、p> p=p->next;</p><p><b> }</b></p><p> for(i=n;i<2*n-1;i++)</p><p><b> {</b></p><p> Select(*HT,i,&HT1,&HT2);</p>
27、<p> HT1->Parent=HT2->Parent=p;</p><p> p->LChild=HT1;</p><p> p->RChild=HT2;</p><p> p->weight=HT1->weight+HT2->weight;</p><p> p=p-
28、>next; </p><p><b> } </b></p><p><b> }</b></p><p><b> 測試數據及運行結果</b></p><p> 1.正常測試數據和運行結果</p><p> 2.異常測試數據及運行結果
29、</p><p> 六.調試情況,設計技巧及體會</p><p><b> 改進方案</b></p><p> 通過一周的課程設計使我對哈夫曼樹以及哈夫曼編碼有了更深的認識和理解,也使我更加明白哈夫曼編碼譯碼在信息技術中的重要性和地位。</p><p> 由于時間問題,對于哈夫曼的壓縮和解壓縮暫時不能實現了。這也
30、是我比較遺憾的一件事了。不過在空閑時間我還會繼續(xù)研究這個問題的。</p><p><b> 2.體會</b></p><p> 開始的時候,代碼中有許多的錯誤,讓我束手無策,最后我耐心的一步一步慢慢地改正錯誤才讓我看到了希望。在實現文章的讀入時, 由于對文件不是太熟悉,只好翻開C語言書本仿照其模式編寫。許多的錯誤讓我明白了細心是非常重要的。同時,對于編程者而言,思
31、路清晰也是相當重要的。在適當的時候和同學一起交流探討是一個十分好的學習機會。及時的向老師請教也是很有幫助的,因為畢竟我們是新手,對于某些問題很難弄清楚。而且,某些錯誤對于我們來說有時候想半天都弄不來,但老師幾下下就搞好了,這樣就更加有效地節(jié)約了時間。</p><p> 這次課程設計不但讓我又學得了一些編程知識,還學會了系統(tǒng)的做一份課程設計報告, 學會了如何更好的畫流程圖,明白了做事情只有認真,才能真正做得更好!
32、</p><p> 通過這次課程設計,我看清楚了自己的編程功底和動手能力還不如人意,這主要是平時實踐太少的緣故。我想,在即將到來的寒假中,我會努力嘗試編寫一些較大的程序。由于我們是軟件工程專業(yè)的學生,就應該更加嚴格要求自己。</p><p><b> 七.參考文獻</b></p><p> 1. 耿國華主編,《數據結構——C語言描述》,高
33、等教育出版社,2005年</p><p> 2. 陳銳,《數據結構(C語言版)》,清華大學出版社 2012年</p><p><b> 附錄</b></p><p> #include <stdio.h> </p><p> #include <stdlib.h></p>&
34、lt;p> #include <string.h> </p><p> #include <conio.h></p><p> #include <ctype.h></p><p> #define M 500 </p><p> #define N 128</p><p
35、> typedef struct node </p><p><b> {</b></p><p> int weight;//權值</p><p> struct node *Parent,*LChild,*RChild;//雙親結點,左孩子結點,右孩子結點</p><p> struct nod
36、e *next;//下一個結點</p><p> }HFMNode,*HFMTree;</p><p> typedef struct </p><p><b> {</b></p><p> char ch;//字符</p><p> char code[N+1];//編碼&
37、lt;/p><p> int flag;//標記</p><p> }CodeNode;</p><p> int n;//葉子結點個數</p><p><b> //密碼</b></p><p> void Login()</p><p><b>
38、 {</b></p><p> char username[15];</p><p> char password[9];</p><p><b> char c;</b></p><p> int i = 0;</p><p> printf("\n\n請輸入用
39、戶名:");</p><p> gets(username);</p><p> printf("\n請輸入密碼:");</p><p> while ((c=getch())!='\r')</p><p><b> {</b></p><p>
40、; if (i<8 && isprint(c))</p><p><b> {</b></p><p> password[i++] = c;</p><p> putchar('*');</p><p><b> }</b></p>&
41、lt;p><b> }</b></p><p> putchar('\n');</p><p> password[i] = '\0';</p><p> if(!(strcmp(password,"04113027")))</p><p><b&g
42、t; {</b></p><p> printf("\n\n恭喜您,登陸成功!\n\n歡迎使用該系統(tǒng)!\n\n");</p><p> system("pause");</p><p><b> }</b></p><p><b> else<
43、/b></p><p><b> {</b></p><p> printf("\n\n密碼錯誤,您無權使用該系統(tǒng)!\n\n請重新輸入!\n\n");</p><p> system("pause");</p><p> system("cls"
44、);</p><p><b> Login();</b></p><p><b> }</b></p><p><b> }</b></p><p> void Menu(void)//菜單</p><p><b> {</
45、b></p><p> printf("\t\t****************************************\n");</p><p> printf("\t\t***** *****\n");</p><p> printf("
46、;\t\t***** 歡迎進入 *****\n");</p><p> printf("\t\t***** 哈夫曼編/譯碼系統(tǒng) *****\n");</p><p> printf("\t\t***** *****\n"
47、;);</p><p> printf("\t\t***** 1.顯示源文件。 *****\n");</p><p> printf("\t\t***** 2.編碼。 *****\n");</p><p> printf("\t\t*****
48、 3.譯碼。 *****\n");</p><p> printf("\t\t***** 4.顯示哈夫曼信息。 *****\n");</p><p> printf("\t\t***** 0.退出。 *****\n");</p>
49、<p> printf("\t\t***** *****\n");</p><p> printf("\t\t****************************************\n");</p><p> printf("\t\t*****
50、 *****\n");</p><p> printf("\t\t***** 請輸入相應操作的序號(0-3) *****\n");</p><p> printf("\t\t***** *****\n");</p>
51、<p> printf("\t\t****************************************\n");</p><p><b> }</b></p><p><b> //打開源文件</b></p><p> void OpenSourceFile(char
52、s[])</p><p><b> {</b></p><p><b> FILE *fp;</b></p><p><b> int i=0;</b></p><p> system("cls");</p><p> i
53、f((fp=fopen("source.txt","rt"))==NULL)//打開文件source.txt</p><p><b> {</b></p><p> printf("打開文件失敗!\n");</p><p><b> exit(1);</b>
54、;</p><p><b> }</b></p><p> s[i++]=fgetc(fp);</p><p> while(s[i-1]!=EOF)//將文件中的字符串存入s[]中</p><p> s[i++]=fgetc(fp);</p><p> s[i]='\0
55、9;; </p><p> fclose(fp);</p><p><b> }</b></p><p><b> //存儲文件</b></p><p> void Save(char s[])</p><p><b> {</b></
56、p><p> char name[10];</p><p><b> FILE *fp;</b></p><p> printf("請輸入要保存的文件名:");</p><p> gets(name);</p><p> if((fp=fopen(name,"w
57、t"))==NULL)</p><p><b> { </b></p><p> printf("存儲文件失??!\n");</p><p><b> exit(1);</b></p><p><b> }</b></p>&l
58、t;p> fputs(s,fp);</p><p> printf("\n文件保存成功,文件名為:%s。\n\n",name);</p><p> system("pause");</p><p> fclose(fp);</p><p><b> }</b><
59、;/p><p> void Search(char s[],char str[],int freq[])//查找各個字符,并統(tǒng)計其出現的頻數</p><p><b> {</b></p><p> int i,j,k=0;</p><p> for(i=0;i<N;i++)//初始化freq[]</
60、p><p> freq[i]=0; </p><p> for(i=0;s[i];i++)</p><p><b> {</b></p><p> for(j=0;j<k;j++)//統(tǒng)計各個字符出現的頻數,即權值,并將其存放在freq[]</p><p> if(str[j]==
61、s[i]) </p><p><b> { </b></p><p> freq[j]++; </p><p><b> break; </b></p><p><b> }</b></p><p> if(j==k)//查找各個字符,并將其
62、存放在str[]中</p><p><b> {</b></p><p> str[k]=s[i];</p><p> freq[k++]++; </p><p><b> }</b></p><p><b> }</b></p>
63、<p> str[k]='\0';</p><p> n=k-1;//n為查找后字符的總個數</p><p><b> }</b></p><p> void Select(HFMTree HT,int k,HFMTree *HT1,HFMTree *HT2)//查找權值最小的兩個結點</p>
64、<p><b> {</b></p><p> inti,min;</p><p> HFMTreep;</p><p><b> min=1000;</b></p><p> for(i=0,p=HT;i<k;i++,p=p->next)//查找權值最小
65、的結點</p><p> if(p->weight<min&&p->Parent==0)</p><p><b> {</b></p><p> min=p->weight;</p><p><b> *HT1=p;</b></p>&l
66、t;p><b> }</b></p><p><b> min=1000;</b></p><p> for(i=0,p=HT;i<k;i++,p=p->next)//查找權值次小的結點</p><p> if(p->weight<min&&p->Parent
67、==0&&p!=*HT1)</p><p><b> {</b></p><p> min=p->weight;</p><p><b> *HT2=p;</b></p><p><b> }</b></p><p><
68、;b> }</b></p><p> void CreateHFMTree(HFMTree *HT,int freq[])//創(chuàng)建哈夫曼樹</p><p><b> {</b></p><p><b> int i;</b></p><p> HFMTree p,HT1
69、,HT2;</p><p> p=*HT=(HFMTree)malloc(sizeof(HFMNode)); //申請空間</p><p> p->next=p->LChild=p->RChild=p->Parent=NULL;//初始化</p><p> for(i=1;i<2*n-1;i++)//申請空間,并初始化所有結點
70、,共2n-1個</p><p><b> {</b></p><p> p->next=(HFMTree)malloc(sizeof(HFMNode));</p><p> p=p->next;</p><p> p->next=p->LChild=p->RChild=p->P
71、arent=NULL;</p><p><b> }</b></p><p> for(i=0,p=*HT;i<n;i++)//給前n個結點賦權值</p><p><b> {</b></p><p> p->weight=freq[i];</p><p&g
72、t; p=p->next;</p><p><b> }</b></p><p> for(i=n;i<2*n-1;i++)//開始創(chuàng)建哈夫曼樹</p><p><b> {</b></p><p> Select(*HT,i,&HT1,&HT2);//查找
73、權值最小的兩個結點</p><p> HT1->Parent=HT2->Parent=p;</p><p> p->LChild=HT1;</p><p> p->RChild=HT2;</p><p> p->weight=HT1->weight+HT2->weight;//更改雙親結
74、點的權值</p><p> p=p->next; </p><p><b> } </b></p><p><b> }</b></p><p> void HFMCode(HFMTree HT,CodeNode HC[],char str[])//編碼</p>&l
75、t;p><b> {</b></p><p><b> int i; </b></p><p> HFMTree q,p=HT; </p><p> for(i=0;i<n;i++)</p><p><b> {</b></p><p&
76、gt; HC[i].ch=str[i];</p><p> HC[i].code[n-1]='\0';//處理編碼的結束符</p><p><b> }</b></p><p> for(i=0;i<n;i++)//開始解碼</p><p><b> {</b>&
77、lt;/p><p> HC[i].flag=n-1;//根結點</p><p> for(q=p;q->Parent;q=q->Parent)</p><p> if(q==q->Parent->LChild)</p><p> HC[i].code[--HC[i].flag]='0';//左0
78、</p><p><b> else </b></p><p> HC[i].code[--HC[i].flag]='1';//右1 </p><p> p=p->next; </p><p><b> }</b></p><p><b&
79、gt; }</b></p><p> void AllCode(char s[],CodeNode HC[],char code[])//所有的編碼</p><p><b> {</b></p><p><b> int i,j;</b></p><p> code[0]=&
80、#39;\0';</p><p> for(i=0;s[i];i++)</p><p> for(j=0;j<n;j++) </p><p> if(s[i]==HC[j].ch)</p><p> strcpy(code+strlen(code),HC[j].code+HC[j].flag);</p>&
81、lt;p> //將所有字符的編碼連接起來存放到code[]中</p><p><b> } </b></p><p> void Decoding(char code[],HFMTree HT,char str[],char ss[])//譯碼</p><p><b> {</b></p>&
82、lt;p> int i,j,k=0;</p><p> HFMTree root,p,q; </p><p> for(root=HT;root->Parent;root=root->Parent); //從根結點開始按編碼順序進行譯碼</p><p> for(i=0,p=root;code[i];i++)</p><
83、p><b> {</b></p><p> if(code[i]=='0')</p><p> p=p->LChild; </p><p><b> else</b></p><p> p=p->RChild;</p><p>
84、if(p->LChild==NULL&&p->RChild==NULL)</p><p><b> {</b></p><p> for(j=0,q=HT;q!=p;q=q->next,j++)</p><p><b> ; </b></p><p> s
85、s[k++]=str[j];//到根結點時將該字符存放到ss[]中</p><p> p=root;//回到根結點</p><p><b> }</b></p><p><b> } </b></p><p> ss[k]='\0'; </p><p
86、><b> }</b></p><p> void Code(char s[],char str[],char code[],int freq[],HFMTree *HT,CodeNode HC[]) //編碼函數</p><p><b> { </b></p><p> system("cls&
87、quot;);</p><p> Search(s,str,freq);//查找各個字符,并統(tǒng)計其出現的頻數</p><p> CreateHFMTree(HT,freq);//創(chuàng)建哈夫曼樹</p><p> HFMCode(*HT,HC,str);//編碼</p><p> AllCode(s,HC,code);//將
88、各個字符的編碼連起來</p><p> printf("\n哈夫曼編碼為:\n\n");</p><p> puts(code);//輸出編碼</p><p> printf("\n保存編碼,"); </p><p> Save(code);</p><p><
89、;b> }</b></p><p> void DeCode(char code[],char str[],char ss[],HFMTree *HT,CodeNode HC[]) //譯碼函數</p><p><b> {</b></p><p><b> FILE *fp;</b></p
90、><p><b> int i=0;</b></p><p> system("cls");</p><p> if((fp=fopen("code.txt","rt"))==NULL)//打開編碼文件code.txt</p><p><b>
91、 {</b></p><p> printf("打開文件失?。n");</p><p><b> exit(1);</b></p><p><b> }</b></p><p> fclose(fp);</p><p> Decod
92、ing(code,*HT,str,ss);//譯碼 </p><p> printf("\n譯碼后的字符串為:\n\n"); </p><p> puts(ss);//輸出譯碼后的字符串</p><p> printf("\n保存譯碼,");</p><p><b> Save(s
93、s);</b></p><p><b> }</b></p><p> //將創(chuàng)建好的哈弗曼樹的字符,權值和密碼存入文件hfmtree.txt中</p><p> void HFMFile(int freq[],CodeNode HC[])</p><p><b> {</b>&
94、lt;/p><p><b> int i;</b></p><p><b> FILE *fp;</b></p><p> if ((fp=fopen("hfmtree.txt","wt"))==NULL)</p><p><b> {</
95、b></p><p> printf("打開文件出錯!\n");</p><p><b> exit(0);</b></p><p><b> }</b></p><p> for(i=0;i<n;i++)</p><p> fpri
96、ntf(fp,"%c\t%d\t%s\n",HC[i].ch,freq[i],&(HC[i].code[HC[i].flag]));</p><p> printf("\n哈夫曼樹創(chuàng)建成功,并已存入文件hfmtree.txt中。\n\n");</p><p> fclose(fp);</p><p><b&g
97、t; }</b></p><p> void main() </p><p><b> {</b></p><p> char s[M];//存放從文件source.txt中讀取的字符串</p><p> char ss[M];//存放譯碼后的字符串</p><p>
98、char str[N];//存放統(tǒng)計后的所有字符</p><p> int i,freq[N];//存放統(tǒng)計后的各個字符出現的頻數,即權值</p><p> char code[M];//存放從文件code.txt中讀取的編碼</p><p> int choice;</p><p> HFMTree HT;</p>
99、<p> CodeNode HC[N];</p><p><b> Login();</b></p><p><b> do</b></p><p><b> {</b></p><p> system("cls");</p&g
100、t;<p> printf("\n"); </p><p> Menu();//調用菜單函數</p><p> printf("\n");</p><p> scanf("%d",&choice);//選擇要執(zhí)行的操作</p><p> getc
101、har();</p><p> switch(choice)</p><p><b> {</b></p><p> case 1:OpenSourceFile(s);//打開源文件</p><p> printf("\n源文件source.txt中的字符串為:\n\n"); </p&
102、gt;<p> puts(s);//輸出要編譯的字符串</p><p> printf("\n");</p><p> system("pause");</p><p><b> break;</b></p><p> case 2:Code(s,str,
103、code,freq,&HT,HC);//編碼</p><p><b> break;</b></p><p> case 3:DeCode(code,str,ss,&HT,HC);//譯碼</p><p><b> break;</b></p><p> case 4:
104、system("cls");</p><p> printf("\n文件中各個字符及其權值的情況如下所示:\n");</p><p> printf("\n字符\t權值\t編碼\n");</p><p> for(i=0;i<n;i++)</p><p> printf
105、("%c\t%d\t%s\n",HC[i].ch,freq[i],&(HC[i].code[HC[i].flag]));</p><p> HFMFile(freq,HC);//將創(chuàng)建好的哈弗曼樹的字符,權值和密碼存入文件</p><p> system("pause");</p><p><b>
106、break;</b></p><p> case 0:system("cls");</p><p> printf("\n感謝您的使用,再見!\n\n");//退出</p><p><b> break; </b></p><p> default :syst
107、em("cls");</p><p> printf("\n抱歉,您輸入錯誤!\n請重新開始輸入哦!\n\n"); </p><p> system("pause");</p><p><b> }</b></p><p> }while(choice
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 哈夫曼編譯碼器課程設計報告
- 哈夫曼(huffman)編譯碼器課程設計
- 哈夫曼(huffman)編譯碼器課程設計
- 哈夫曼編碼譯碼器課程設計
- (哈夫曼編碼譯碼器)(課程設計報告)
- 哈夫曼編碼譯碼器課程設計--- 哈夫曼樹的建立與實現
- java哈夫曼編碼譯碼器
- 數據結構課程設計-哈夫曼編碼譯碼器
- 哈夫曼編碼與譯碼課程設計報告
- 課程設計 哈夫曼樹及哈夫曼編碼
- 課程設計--哈夫曼編碼與譯碼
- 哈夫曼課程設計報告
- 數據結構課程設計報告——哈夫曼編譯器
- 數據結構哈夫曼編碼譯碼器課程設計報告(有源程序)
- 哈夫曼編碼課程設計報告
- 哈夫曼樹課程設計報告
- 哈夫曼編碼譯碼的實現課程設計
- 課程設計-哈夫曼編碼
- 赫夫曼編譯碼器數據結構課程設計
- 哈夫曼樹課程設計
評論
0/150
提交評論