

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)</b></p><p> 題目:哈夫曼編碼譯碼</p><p><b> 姓名:</b></p><p><b> 專業(yè)</b></p><p><b> 目錄</b></p><
2、p> 一、系統(tǒng)開(kāi)發(fā)的背景…………………………………………………… ………………….2</p><p> 二、系統(tǒng)分析與設(shè)計(jì)…………… ……………………………………………………………… 2</p><p> (1)系統(tǒng)功能要求……………………………………………………………….…………2 (2)設(shè)計(jì)包含的幾個(gè)方面………… ………………………………………………………3</p
3、><p> 三、詳細(xì)設(shè)計(jì)………………………………………………………………………….…………3</p><p> 四、流程圖…………………………………………………………………………….…………8</p><p> 五、調(diào)試結(jié)果……………………………………………………………………….…………10</p><p> 六、心得體會(huì)……………………
4、………………………………………………….…………11</p><p> 七、附錄(源代碼)……………………………………………………………….…………11</p><p> 哈夫曼編/譯碼器系統(tǒng)</p><p><b> 一、系統(tǒng)開(kāi)發(fā)的背景</b></p><p> 為了提高信道利用率,縮短信息傳輸時(shí)間,降低傳輸成
5、本,且在信息發(fā)送端通過(guò)一個(gè)編碼系統(tǒng)對(duì)待傳數(shù)據(jù)預(yù)先編碼,在信息接收端將傳來(lái)的數(shù)據(jù)進(jìn)行譯碼(復(fù)原),因此設(shè)計(jì)哈夫曼編碼/譯碼器系統(tǒng)。</p><p><b> 二、系統(tǒng)分析與設(shè)計(jì)</b></p><p> (一)系統(tǒng)功能要求:</p><p><b> 【任務(wù)要求】</b></p><p> 1
6、:初始化(Initialization)。從終端讀入字符集大小n,以及n個(gè)字符和n個(gè)權(quán)值,建立哈夫曼樹,并將它存于文件hfmTree中。</p><p> 2:編碼(Encoding)。利用以建好的哈夫曼樹(如不在內(nèi)存,則從文件hfmTree中讀入),對(duì)文件To Be Tran中的正文進(jìn)行編碼,然后將結(jié)果存入文件CodeFile中。</p><p> 3:譯碼(Decoding)。利用
7、已建好的哈夫曼樹將文件Code File中的代碼進(jìn)行譯碼,結(jié)果存入文件Text File中。</p><p> 4:印代碼文件(Print)。將文件Code File以緊湊格式顯示在終端上,每行50個(gè)代碼。同時(shí)將此字符形式的編碼文件寫入文件Code Prin中。</p><p> 5:印哈夫曼樹(Tree Printing)。將已在內(nèi)存中的哈夫曼樹以直觀的方式(樹或凹入表形式)顯示在終
8、端上,同時(shí)將此字符形式的哈夫曼樹寫入文件Tree Print中。</p><p><b> 【測(cè)試數(shù)據(jù)】</b></p><p> 利用教科書中的數(shù)據(jù)調(diào)試程序。</p><p> 用下表給出的字符集和頻度的實(shí)際統(tǒng)計(jì)數(shù)據(jù)建立哈夫曼樹,并實(shí)現(xiàn)以下報(bào)文的編碼和譯碼:“THIS PROGRAM IS MY FAVORITE”。</p&
9、gt;<p> ?。ǘ┰O(shè)計(jì)包含的幾個(gè)方面:</p><p> ?、?哈夫曼樹的建立:</p><p> 哈夫曼樹的建立由哈夫曼算法的定義可知,初始森林中共有n棵只含有根結(jié)點(diǎn)的二叉樹。算法的第二步是:將當(dāng)前森林中的兩棵根結(jié)點(diǎn)權(quán)值最小的二叉樹,合并成一棵新的二叉樹;每合并一次,森林中就減少一棵樹,產(chǎn)生一個(gè)新結(jié)點(diǎn)。顯然要進(jìn)行n-1次合并,所以共產(chǎn)生n-1個(gè)新結(jié)點(diǎn),它們都是具有兩
10、個(gè)孩子的分支結(jié)點(diǎn)。由此可知,最終求得的哈夫曼樹中一共有2n-1個(gè)結(jié)點(diǎn),其中n個(gè)結(jié)點(diǎn)是初始森林的n個(gè)孤立結(jié)點(diǎn)。并且哈夫曼樹中沒(méi)有度數(shù)為1的分支結(jié)點(diǎn)。我們可以利用一個(gè)大小為2n--1的一維數(shù)組來(lái)存儲(chǔ)哈夫曼樹中的結(jié)點(diǎn)。</p><p><b> ?、?哈夫曼編碼: </b></p><p> 要求電文的哈夫曼編碼,必須先定義哈夫曼編碼類型,根據(jù)設(shè)計(jì)要求和實(shí)際需要定義的類型
11、如下: </p><p> typedet struct { </p><p> char ch; // 存放編碼的字符 </p><p> char bits[N+1]; // 存放編碼位串 </p><p> int len; // 編碼的長(zhǎng)度 </p><p> }CodeNode; // 編碼結(jié)構(gòu)體類
12、型 </p><p> ③ 代碼文件的譯碼: </p><p> 譯碼的基本思想是:讀文件中編碼,并與原先生成的哈夫曼編碼表比較,遇到相等時(shí),即取出其對(duì)應(yīng)的字符存入一個(gè)新串中。 </p><p><b> 三、詳細(xì)設(shè)計(jì)</b></p><p> (1)①哈夫曼樹的存儲(chǔ)結(jié)構(gòu)描述為: </p><
13、;p> #define N 50 // 葉子結(jié)點(diǎn)數(shù) </p><p> #define M 2*N-1 // 哈夫曼樹中結(jié)點(diǎn)總數(shù) </p><p> typedef struct { </p><p> int weight; </p><p> int lchild, rchild, parent; // 左右孩子及雙親指針
14、 </p><p><b> }HTNode; </b></p><p> typedef HTNode HuffmanTree[M+1]; </p><p><b> ②哈弗曼樹的算法</b></p><p> void CreateHT(HTNode ht[],int n)
15、 </p><p> int i,k,lnode,rnode;</p><p> int min1,min2;</p><p> for (i=0;i<2*n-1;i++) </p><p> ht[i].parent=ht[i].lchild=ht[i].rchild=-1;
16、 </p><p> for (i=n;i<2*n-1;i++) </p><p><b> {</b></p><p> min1=min2=32767; </p><p> lnode=rnode=-1;
17、 </p><p> for (k=0;k<=i-1;k++)</p><p><b> {</b></p><p> if (ht[k].parent==-1) {</p><p> if (ht[k].weight<min1)
18、 </p><p><b> {</b></p><p> min2=min1;rnode=lnode;</p><p> min1=ht[k].weight;lnode=k;</p><p><b> }</b></p><p> else if (ht[k].w
19、eight<min2)</p><p><b> {</b></p><p> min2=ht[k].weight;rnode=k;</p><p><b> }</b></p><p><b> }</b></p><p><b&g
20、t; }</b></p><p> ht[lnode].parent=i;ht[rnode].parent=i; </p><p> ht[i].weight=ht[lnode].weight+ht[rnode].weight; </p><p> ht[i].lchild=lnode;ht[i].rch
21、ild=rnode; </p><p><b> }</b></p><p><b> }</b></p><p><b> ?。?)哈弗曼編碼</b></p><p> void CreateHCode(HTNode ht[],HCode
22、 hcd[],int n)</p><p><b> {</b></p><p> int i,f,c;</p><p><b> HCode hc;</b></p><p> for (i=0;i<n;i++) {</p&
23、gt;<p> hc.start=n;c=i;</p><p> f=ht[i].parent;</p><p> while (f!=-1) {</p><p> if (ht[f].lchild==c) </p><
24、;p> hc.cd[hc.start--]='0';</p><p> else </p><p> hc.cd[hc.start--]='1';</p><p> c=f;f=ht[f].parent;</p><p><
25、;b> }</b></p><p> hc.start++; //start指向哈夫曼編碼hc.cd[]中最開(kāi)始字符</p><p> hcd[i]=hc;</p><p><b> }</b></p><p><b> }
26、</b></p><p> void DispHCode(HTNode ht[],HCode hcd[],int n) //輸出哈夫曼編碼的列表</p><p><b> {</b></p><p><b> int i,k;</b></p><p> printf(&q
27、uot; 輸出哈夫曼編碼:\n"); </p><p> for (i=0;i<n;i++) </p><p><b> {</b></p><p> printf(" %c:\t",ht[i].data);
28、 </p><p> for (k=hcd[i].start;k<=n;k++) //輸出所有data中數(shù)據(jù)的編碼</p><p><b> {</b></p><p> printf("%c",hcd[i].cd[k]); <
29、;/p><p><b> }</b></p><p> printf("\n");</p><p><b> }</b></p><p><b> }</b></p><p> void editHCode(HTNode ht[
30、],HCode hcd[],int n) </p><p><b> {</b></p><p> char string[MAXSIZE]; </p><p> int i,j,k;</p><p> scanf("%s",string);
31、 //把要進(jìn)行編碼的字符串存入string數(shù)組中</p><p> printf("\n輸出編碼結(jié)果:\n");</p><p> for (i=0;string[i]!='#';i++) </p><p><b> {</b>
32、</p><p> for (j=0;j<n;j++)</p><p><b> {</b></p><p> if(string[i]==ht[j].data) {</p><p> for (k=hcd[j].start;k<=n;k++)</p><
33、p><b> {</b></p><p> printf("%c",hcd[j].cd[k]);</p><p><b> }</b></p><p> break; </p><p><b> }</b&
34、gt;</p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p><b> ?。?)哈弗曼譯碼</b></p><p> void deHCode(HT
35、Node ht[],HCode hcd[],int n) //譯碼函數(shù)</p><p><b> {</b></p><p> char code[MAXSIZE];</p><p> int i,j,l,k,m,x;</p><p> scanf("%s",code);
36、 //把要進(jìn)行譯碼的字符串存入code數(shù)組中</p><p> while(code[0]!='#')</p><p> for (i=0;i<n;i++)</p><p><b> {</b></p><p> m=0;
37、 </p><p> for (k=hcd[i].start,j=0;k<=n;k++,j++) //j為記錄所存儲(chǔ)這個(gè)字符的編碼個(gè)數(shù)</p><p><b> {</b></p><p> if(code[j]==hcd[i].cd[k]) m++;</p>
38、;<p><b> }</b></p><p> if(m==j) {</p><p> printf("%c",ht[i].data);</p><p> for(x=0;code[x-1]!='#';x++)
39、 </p><p><b> {</b></p><p> code[x]=code[x+j];</p><p><b> }</b></p><p><b> }</b></p><p><b> }</b>&l
40、t;/p><p><b> }</b></p><p><b> ?。?)主函數(shù)</b></p><p> void main()</p><p><b> {</b></p><p> int n=26,i;</p><p>
41、; char orz,back,flag=1;</p><p> char str[]={'A','B','C','D','E','F','G','H','I','J','K','L','M','
42、N','O','P','Q','R','S','T','U','V','W','X','Y','Z'}; //初始化</p><p> int fnum[]={186,64,13,22,32,103,21,15,
43、47,57,1,2,32,20,57,63,15,1,48,51,80,23,8,18,1,16}; //初始化</p><p> HTNode ht[M]; //建立結(jié)構(gòu)體</p><p> HCode hcd[N]; </p><p> for (i=0;i<n;i++)
44、 </p><p> {ht[i].data=str[i];</p><p> ht[i].weight=fnum[i];</p><p><b> }</b></p><p> while (flag) </p><p> ?。?)顯示部分源程序
45、:</p><p> { printf("\n");</p><p> printf("\n **班級(jí):2012級(jí)信本(1)班 姓名:王政銳 學(xué)號(hào):20120651144 **");</p><p> printf("\n *******************************
46、****************************");</p><p> printf("\n ************ A---------------顯示編碼 ************");</p><p> printf("\n ************ B---------------進(jìn)
47、行編碼 ************");</p><p> printf("\n ************ C---------------進(jìn)行譯碼 ************");</p><p> printf("\n ************ D---------------退出
48、 ************");</p><p> printf("\n ***********************************************************");</p><p> printf("\n");</p><p> printf("
49、 請(qǐng)輸入要選擇的編號(hào):");</p><p> scanf("%c",&orz);</p><p> switch(orz)</p><p> { case 'a':</p><p><b> case 'A':</b></p&g
50、t;<p> system("cls"); //清屏函數(shù)</p><p> CreateHT(ht,n);</p><p> CreateHCode(ht,hcd,n);</p><p> DispHCode(ht,hcd,n);</p><p> p
51、rintf("\n按任意鍵返回...");</p><p><b> getch();</b></p><p> system("cls");</p><p><b> break;</b></p><p><b> case 'b&
52、#39;:</b></p><p><b> case 'B':</b></p><p> system("cls");</p><p> printf("請(qǐng)輸入要進(jìn)行編碼的字符串(以#結(jié)束):\n");</p><p> editHCode(h
53、t,hcd,n);</p><p> printf("\n按任意鍵返回...");</p><p><b> getch();</b></p><p> system("cls");</p><p><b> break;</b></p>
54、<p><b> case 'c':</b></p><p><b> case 'C':</b></p><p> system("cls");</p><p> DispHCode(ht,hcd,n);</p><p>
55、printf("請(qǐng)輸入編碼(以#結(jié)束):\n");</p><p> deHCode(ht,hcd,n);</p><p> printf("\n按任意鍵返回...");</p><p><b> getch();</b></p><p> system("cls
56、");</p><p><b> break;</b></p><p><b> case 'd':</b></p><p><b> case 'D':</b></p><p><b> flag=0;</b&
57、gt;</p><p><b> break;</b></p><p><b> default:</b></p><p> system("cls");}}}</p><p><b> 四、流程圖如下:</b></p><p&g
58、t;<b> 五、調(diào)試結(jié)果</b></p><p><b> 進(jìn)入主菜單:</b></p><p><b> 選A時(shí)的顯示結(jié)果:</b></p><p> 選擇B時(shí)的顯示結(jié)果:</p><p><b> 選C時(shí)的顯示結(jié)果:</b></p&g
59、t;<p><b> 六、心得體會(huì)</b></p><p> 通過(guò)這次課程設(shè)計(jì),讓我對(duì)一個(gè)程序的數(shù)據(jù)結(jié)構(gòu)有更全面更進(jìn)一步的認(rèn)識(shí),根據(jù)不同的需求,采用不同的數(shù)據(jù)存儲(chǔ)方式,不一定要用棧,二叉樹等高級(jí)類型,有時(shí)用基本的一維數(shù)組,只要運(yùn)用得當(dāng),也能達(dá)到相同的效果,甚至更佳,就如這次的課程設(shè)計(jì),通過(guò)用for的多重循環(huán),舍棄多余的循環(huán),提高了程序的運(yùn)行效率。在編寫這個(gè)程序的過(guò)程中,我復(fù)
60、習(xí)了之前學(xué)的基本語(yǔ)法,哈夫曼樹最小路徑的求取,哈夫曼編碼及譯碼的應(yīng)用范圍,程序結(jié)構(gòu)算法等一系列的問(wèn)題它使我對(duì)數(shù)據(jù)結(jié)構(gòu)改變了看法。在這次設(shè)計(jì)過(guò)程中,體現(xiàn)出自己?jiǎn)为?dú)設(shè)計(jì)模具的能力以及綜合運(yùn)用知識(shí)的能力,體會(huì)了學(xué)以致用、突出自己勞動(dòng)成果的喜悅心情,也從中發(fā)現(xiàn)自己平時(shí)學(xué)習(xí)的不足和薄弱環(huán)節(jié),從而加以彌補(bǔ)。</p><p><b> 七、附錄:</b></p><p><
61、b> 源程序如下:</b></p><p> #include <stdio.h></p><p> #include <stdlib.h> </p><p> #include<conio.h> </p><p> #include &l
62、t;string.h></p><p> #define N 50 </p><p> #define M 2*N-1 </p><p> #define MAXSIZE 100</p><p> typedef struct</p><p>&l
63、t;b> {</b></p><p> char data; </p><p> int weight; </p><p> int parent; //雙親結(jié)點(diǎn)</p><p> int lchild;
64、 </p><p> int rchild; //右孩子結(jié)點(diǎn)</p><p> }HTNode; </p><p> typedef struct</p><p><b> {</b></p><p
65、> char cd[N]; </p><p> int start; </p><p><b> }HCode;</b></p><p> void CreateHT(HTNode ht[],int n) </p><
66、p><b> {</b></p><p> int i,k,lnode,rnode;</p><p> int min1,min2;</p><p> for (i=0;i<2*n-1;i++) </p><p> ht[i].parent=ht[i].lchild=ht[i].rchi
67、ld=-1; //所有結(jié)點(diǎn)的相關(guān)域置初值-1</p><p> for (i=n;i<2*n-1;i++) //構(gòu)造哈夫曼樹</p><p><b> {</b></p><p> min1=min2=32767; </p><p>
68、lnode=rnode=-1; </p><p> for (k=0;k<=i-1;k++)</p><p><b> {</b></p><p> if (ht[k].parent==-1) //只在尚未構(gòu)造二叉樹的結(jié)點(diǎn)中查找</p><p>&l
69、t;b> {</b></p><p> if (ht[k].weight<min1) {</p><p> min2=min1;rnode=lnode;</p><p> min1=ht[k].weight;lnode=k;</p><p><b> }</b>
70、</p><p> else if (ht[k].weight<min2)</p><p><b> {</b></p><p> min2=ht[k].weight;rnode=k;</p><p><b> }</b></p><p><b>
71、}</b></p><p><b> }</b></p><p> ht[lnode].parent=i;ht[rnode].parent=i; ht[i].weight=ht[lnode].weight+ht[rnode].weight; </p><p> ht[i]
72、.lchild=lnode;ht[i].rchild=rnode; </p><p><b> }</b></p><p><b> }</b></p><p> void CreateHCode(HTNode ht[],HCode hcd[],int n)</p><
73、;p><b> {</b></p><p> int i,f,c;</p><p><b> HCode hc;</b></p><p> for (i=0;i<n;i++) //根據(jù)哈夫曼樹求哈夫曼編碼</p><p>&l
74、t;b> {</b></p><p> hc.start=n;c=i;</p><p> f=ht[i].parent;</p><p> while (f!=-1) </p><p><b> {</b></p><
75、;p> if (ht[f].lchild==c) </p><p> hc.cd[hc.start--]='0';</p><p> else </p><p> hc.cd[hc.start--]='1'
76、;</p><p> c=f;f=ht[f].parent;</p><p><b> }</b></p><p> hc.start++; </p><p> hcd[i]=hc;</p><p><b> }<
77、;/b></p><p><b> }</b></p><p> void DispHCode(HTNode ht[],HCode hcd[],int n) </p><p><b> {</b></p><p><b> int i,k;</b><
78、/p><p> printf(" 輸出哈夫曼編碼:\n"); </p><p> for (i=0;i<n;i++) </p><p><b> {</b></p><p> printf(" %c:\t&qu
79、ot;,ht[i].data); </p><p> for (k=hcd[i].start;k<=n;k++) //輸出所有data中數(shù)據(jù)的編碼</p><p><b> {</b></p><p> printf("%c",hcd[i].cd[
80、k]); </p><p><b> }</b></p><p> printf("\n");</p><p><b> }</b></p><p><b> }</b></p><p>
81、; void editHCode(HTNode ht[],HCode hcd[],int n) //編碼函數(shù)</p><p><b> {</b></p><p> char string[MAXSIZE]; </p><p> int i,j,k;</p><p&
82、gt; scanf("%s",string); </p><p> printf("\n輸出編碼結(jié)果:\n");</p><p> for (i=0;string[i]!='#';i++) //#為終止標(biāo)志</p><p>&l
83、t;b> {</b></p><p> for (j=0;j<n;j++)</p><p><b> {</b></p><p> if(string[i]==ht[j].data) {</p><p> for (k=hcd[j].start;k<=n
84、;k++)</p><p><b> {</b></p><p> printf("%c",hcd[j].cd[k]);</p><p><b> }</b></p><p> break; //輸出完成后跳出當(dāng)前for循環(huán)<
85、;/p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p> void deHCode(HTNode ht[],HCo
86、de hcd[],int n) //譯碼函數(shù)</p><p><b> {</b></p><p> char code[MAXSIZE];</p><p> int i,j,l,k,m,x;</p><p> scanf("%s",code);
87、 //把要進(jìn)行譯碼的字符串存入code數(shù)組中</p><p> while(code[0]!='#')</p><p> for (i=0;i<n;i++)</p><p><b> {</b></p><p> m=0;
88、</p><p> for (k=hcd[i].start,j=0;k<=n;k++,j++) </p><p><b> {</b></p><p> if(code[j]==hcd[i].cd[k]) </p><p><b> m++;</b></
89、p><p><b> }</b></p><p> if(m==j) </p><p><b> {</b></p><p> printf("%c",ht[i].data);</p><p>
90、; for(x=0;code[x-1]!='#';x++) </p><p><b> {</b></p><p> code[x]=code[x+j];</p><p><b> }</b></p><p><b> }</b>&
91、lt;/p><p><b> }</b></p><p><b> }</b></p><p> void main()</p><p><b> {</b></p><p> int n=26,i;</p><p> c
92、har orz,back,flag=1;</p><p> char str[]={'A','B','C','D','E','F','G','H','I','J','K','L','M','N
93、9;,'O','P','Q','R','S','T','U','V','W','X','Y','Z'}; //初始化</p><p> int fnum[]={186,64,13,22,32,103,21,15,47,5
94、7,1,2,32,20,57,63,15,1,48,51,80,23,8,18,1,16}; //初始化</p><p> HTNode ht[M]; //建立結(jié)構(gòu)體</p><p> HCode hcd[N]; </p><p> for (i=0;i<n;i++)
95、 </p><p> {ht[i].data=str[i];</p><p> ht[i].weight=fnum[i];</p><p><b> }</b></p><p> while (flag) </p><p> { printf(&qu
96、ot;\n");</p><p> printf(" **************************************");</p><p> printf("\n ** A---------------顯示編碼 **");</p><p> printf("\n
97、 ** B---------------進(jìn)行編碼 **");</p><p> printf("\n ** C---------------進(jìn)行譯碼 **");</p><p> printf("\n ** D---------------退出 **\n");</p><p&
98、gt; printf(" ****************************************");</p><p> printf("\n");</p><p> printf(" 請(qǐng)輸入選擇的編號(hào):");</p><p> scanf("%c&q
99、uot;,&orz);</p><p> switch(orz)</p><p> { case 'a':</p><p><b> case 'A':</b></p><p> system("cls");
100、 </p><p> CreateHT(ht,n);</p><p> CreateHCode(ht,hcd,n);</p><p> DispHCode(ht,hcd,n);</p><p> printf("\n按任意鍵返回...");</p><p><b> get
101、ch();</b></p><p> system("cls");</p><p><b> break;</b></p><p><b> case 'b':</b></p><p><b> case 'B':&l
102、t;/b></p><p> system("cls");</p><p> printf("請(qǐng)輸入要進(jìn)行編碼的字符串(以#結(jié)束):\n");</p><p> editHCode(ht,hcd,n);</p><p> printf("\n按任意鍵返回...");&l
103、t;/p><p><b> getch();</b></p><p> system("cls");</p><p><b> break;</b></p><p><b> case 'c':</b></p><p&
104、gt;<b> case 'C':</b></p><p> system("cls");</p><p> DispHCode(ht,hcd,n);</p><p> printf("請(qǐng)輸入編碼(以#結(jié)束):\n");</p><p> deHCode(
105、ht,hcd,n);</p><p> printf("\n按任意鍵返回...");</p><p><b> getch();</b></p><p> system("cls");</p><p><b> break;</b></p>
106、<p><b> case 'd':</b></p><p><b> case 'D':</b></p><p><b> flag=0;</b></p><p><b> break;</b></p><
107、;p><b> default:</b></p><p> system("cls");</p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p>
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 哈夫曼編碼譯碼數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)--電文編碼譯碼(哈夫曼編碼)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)電文編碼譯碼(哈夫曼編碼)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)-哈夫曼編碼譯碼器
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)--哈夫曼編碼和譯碼報(bào)告
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)---哈夫曼編碼
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)----哈夫曼編碼
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)哈夫曼編碼
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)--哈夫曼編碼
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)---哈夫曼編碼
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)哈夫曼編碼
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)---哈弗曼編碼譯碼
- 數(shù)據(jù)結(jié)構(gòu) 課程設(shè)計(jì)之哈夫曼編碼
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)---哈夫曼編碼器
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)---哈夫曼編碼器
- 數(shù)據(jù)結(jié)構(gòu)哈夫曼編碼譯碼器課程設(shè)計(jì)報(bào)告(有源程序)
- 課程設(shè)計(jì)--哈夫曼編碼與譯碼
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)報(bào)告---哈夫曼編碼器
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)報(bào)告----哈夫曼
- 哈夫曼樹_數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論