七:哈夫曼編碼及應(yīng)用_第1頁
七:哈夫曼編碼及應(yīng)用_第2頁
七:哈夫曼編碼及應(yīng)用_第3頁
七:哈夫曼編碼及應(yīng)用_第4頁
七:哈夫曼編碼及應(yīng)用_第5頁
已閱讀5頁,還剩2頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、.廣州中醫(yī)藥大學(xué)醫(yī)學(xué)信息工程學(xué)院實 驗 報 告課程名稱:數(shù)據(jù)結(jié)構(gòu)與算法專業(yè)班級:計算機科學(xué)與技術(shù)( )級學(xué)生學(xué)號:學(xué)生姓名:實驗名稱:實驗成績:課程類別:必修 限選 公選 其它 哈夫曼編碼及應(yīng)用實驗?zāi)康模毫私夤蚵鼧涞膽?yīng)用,掌握哈夫曼樹的構(gòu)造方法及前綴碼的應(yīng)用。實驗性質(zhì):設(shè)計性,應(yīng)用性。實驗步驟: (1) 輸入一串字符,統(tǒng)計其中所有的不同字符及其個數(shù),得出每個不同字符在文中出現(xiàn)的頻率。(2) 根據(jù)每個字符頻率建立哈夫曼樹,輸出字符對應(yīng)的編碼。實驗要求 1、 實驗要求獨立完成。2、 遲交或不交的或源代碼雷同者一律不做作業(yè)登記評分。作業(yè)提交 (實驗報告寫在此處)給出含有6,8,11個字符的實例,統(tǒng)

2、計他們的頻率,畫出哈夫曼樹,并用算法驗證結(jié)果。624D1C11B2A21)1代碼寫在此處#includestdio.h#include#define MAXNODE 20#define MAXLEAF 30#define MAXINT 234567struct HtNodeint ww;int parent,lchild,rchild;struct HtTreeint root;struct HtNode htMAXNODE;typedef struct HtTree PHtTree;PHtTree *huffman(int m,int *w);void main() char sMAXNOD

3、E; int m=0;char wMAXNODE; int count=0; int t=0; int aMAXNODE; int *b; char *code;code=(char *)malloc(sizeof(char); b=(int *)malloc(sizeof(int); printf(請輸入字符竄:n); for(int i=0;iMAXNODE;i+) scanf(%c ,&si); +count; if(si=#) break; for(i=0;icount-1;i+) ai=0;bm=0; for(int j=0;jcount-1;j+) if(si=sj&ij) ai=

4、ai+1; si=NULL; if(si!=NULL) bm=ai; wm=si; m+; printf(%c的個數(shù)%d,頻率為%fn,wm-1,bm-1,(float)ai/(count-1); PHtTree *pht; pht=(PHtTree *)malloc(sizeof(PHtTree); pht=huffman(m,b); for(i=0;ihti.ww); printf(n);for(i=0;ihti.parent;while(p!=-1)if(pht-htp.lchild=c) codet=0; t+;if(pht-htp.rchild=c)codet=1; t+; pht-

5、root-; c=p;p=pht-htp.parent;printf(%c的編碼是,wi);for(int y=t-1;y=0;y-)printf(%c,codey);printf(n);PHtTree *huffman(int m,int *w)/構(gòu)造具有m各節(jié)點的哈弗曼樹 PHtTree *pht; int i,j,x1,x2,m1,m2; pht=(PHtTree *)malloc(sizeof(PHtTree); if(pht=NULL) printf(out of space!n); return pht; for(i=0;ihti.lchild=-1; pht-hti.rchild=-1; pht-hti.parent=-1;if(ihti.ww=wi;elsepht-hti.ww=-1;for(i=0;im-1;i+)m1=MAXINT;m2=MAXINT;x1=-1;x2=-1;for(j=0;jhtj.wwhtj.parent=-1)m2=m1;x2=x1;m1=pht-htj.ww;x1=j;else if(pht-htj.wwhtj.parent=-1)m2=pht-htj.ww; x2=j;pht-htx1.parent=m+i;pht-htx2.parent=m+i;pht-htm+i.ww=m1+m2;pht-htm+i.

溫馨提示

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

評論

0/150

提交評論