哈夫曼樹及哈夫曼編碼譯碼的實(shí)現(xiàn)_第1頁
哈夫曼樹及哈夫曼編碼譯碼的實(shí)現(xiàn)_第2頁
哈夫曼樹及哈夫曼編碼譯碼的實(shí)現(xiàn)_第3頁
哈夫曼樹及哈夫曼編碼譯碼的實(shí)現(xiàn)_第4頁
哈夫曼樹及哈夫曼編碼譯碼的實(shí)現(xiàn)_第5頁
已閱讀5頁,還剩1頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、哈夫曼樹及哈夫曼編碼譯碼的實(shí)現(xiàn)程序如下:#includestdio.h#includestring.h#includeconio.h#includestdlib.hint maxline=0;char xx5080;int l,L;typedef struct /*定義結(jié)構(gòu)體*/ int weight;int parent;int lchild,rchild;tree;tree b57;int ReadDat(void) FILE *fp;int i=0;char *p;if(fp=fopen(in.txt,r)=NULL)return 1;while(fgets(xxi,80,fp)!=NU

2、LL) p=strchr(xxi,n);if(p)*p=0;i+;maxline=i;fclose(fp);return 0;int pinlv(int a)int i,j;int L;for(i=0;imaxline;i+)L=strlen(xxi); for(j=0;j=97&xxij=122) axxij-97+;elseif(xxij=32)a26+;elseif(xxij=44)a27+;elseif(xxij=46)a28+;smax(int a,int low,int high,int max) int mid,M2,N2;mid=(high+low)/2;if(high-low

3、=1)if(alowahigh) max0=low;max1=high;else max0=high;max1=low;elseif(high-low=0)max0=high;max1=57;else smax(a,low,mid,max);M0=max0;M1=max1;smax(a,mid+1,high,max);N0=max0;N1=max1;if(aM0=aN0&aM1=aN0)max0=M0;max1=M1;elseif(aM0aN0)max0=M0;max1=N0;elseif(aM0aN0&aM0aN0&aM0aN1)max0=N0;max1=N1;bhtree(int a) i

4、nt i,j;int max2;int c58=0;c57=4000;l=0;for(i=0;i29;i+) if(ai!=0)bi.weight=ai;bi.lchild=0;bi.rchild=0;ci=ai;l+;elseif(ai=0)bi.weight=ai;bi.lchild=0;bi.rchild=0;ci=4000;for(i=29;i29+l-1;i+)smax(c,0,i-1,max);cmax0=4000;cmax1=4000;bi.weight=bmax0.weight+bmax1.weight;bi.lchild=max0;bi.rchild=max1;bmax0.p

5、arent=i;bmax1.parent=i;ci=bi.weight;bma(int i,int j,int n,int M) int t;t=bn.parent;if(n=29+l-2)Mj=2;elseif(n=bt.lchild)Mj=0;n=t;bma(i,j+1,n,M);elseif(n=bt.rchild)Mj=1;n=t;bma(i,j+1,n,M);main() int a29=0;int i,j,n,k=0,p;int m2910;int M10;FILE *fp;clrscr();for(i=0;i29;i+) for(j=0;j10;j+) mij=3;ReadDat

6、();pinlv(a);bhtree(a);fp=fopen(out.txt,w);for(i=0;imaxline;i+) L=strlen(xxi); for(j=0;jL;j+) fprintf(fp,%c,xxij);fprintf(fp,n);for(i=0;i29;i+) if(ai!=0)for(p=0;p10;p+)Mp=3;k=0;n=i;j=0;bma(i,j,n,M);for(p=0;p10;p+)if(Mp=0;p-)mik-1-p=Mp;for(i=0;i26;i+)if(ai!=0)fprintf(fp,%c:,97+i);for(j=0;j10;j+)if(mij

7、2)fprintf(fp,%d,mij);fprintf(fp,n);if(a26!=0) fprintf(fp,:);for(j=0;j10;j+)if(m26j2) fprintf(fp,%d,m26j);fprintf(fp,n);if(a27!=0) fprintf(fp,:);for(j=0;j10;j+)if(m27j2)fprintf(fp,%d,m27j);fprintf(fp,n);if(a28!=0)fprintf(fp,.:);for(j=0;j10;j+)if(m28j2)fprintf(fp,%d,m28j);fprintf(fp,n);for(i=0;imaxline;i+)L=strlen(xxi); for(j=0;j=97&xxij=122) k=xxij-97; for(p=0;p10;p+)if(mkp2) fprintf(fp,%d,mkp); elseif(xxij=32) for(p=0;p10;p+)if(m26p2) fprintf(fp,%d,m26p);elseif(xxij=44) for(p

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論