下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
InformationTheoty&Coding-PAGE1-信息論與編碼信息論與編碼實驗報告實驗報告學生姓名學生姓名***學號***專業(yè)班級信息安全0701HuffmanandShannoncodingHuffmanandShannoncoding指導教師指導教師***學院***完成時間2009年4月三、詳細設計1.Huffman編碼#include<iostream.h>#include<stdio.h>#include<malloc.h>typedefstructnode{node*lchild;node*rchild;chardata;intweight;}*tree;structelemtype{charch;intweight;intcode[10];};intN=0,m=0;voidsavetree(char*str){FILE*fp=fopen("1.txt","w");for(inti=0;i<m;i++){fputc(str[i],fp);}fclose(fp);}voidcreatehuffman(tree&T,elemtype**a,intn){inti=0,j,k1,k2;btree*b;btreeq;b=(btree*)malloc(n*sizeof(tree));for(i=0;i<n;i++){b[i]=(bnode*)malloc(sizeof(node));b[i]->data=a[i]->ch;b[i]->weight=a[i]->weight;b[i]->lchild=b[i]->rchild=NULL;}for(i=1;i<n;i++){k1=-1;for(j=0;j<n;j++){if(b[j]!=NULL&&k1==-1){k1=j;continue;}if(b[j]!=NULL){k2=j;break;}}for(j=0;j<n;j++){if(b[j]!=NULL){if(b[j]->weight<=b[k1]->weight){k1=j; }}}if(k1==k2){for(j=0;j<n;j++){if(b[j]!=NULL&&j!=k1){k2=j;break;}}}for(j=0;j<n;j++){if(b[j]!=NULL&&j!=k1){if(b[j]->weight<=b[k2]->weight){k2=j;}}}q=(bnode*)malloc(sizeof(bnode));q->data='#';q->lchild=b[k1];q->rchild=b[k2];q->weight=b[k1]->weight+b[k2]->weight;b[k1]=q;b[k2]=NULL;}free(b);T=q;}voidhuffmancoding(btreeT,intlen,elemtype**codes){staticinta[10];if(T!=NULL){if(T->lchild==NULL&&T->rchild==NULL){inti;printf("%c",T->data);codes[N]=(elemtype*)malloc(sizeof(elemtype));codes[N]->ch=T->data;codes[N]->weight=0;for(i=0;i<10;i++)codes[N]->code[i]=2;for(i=0;i<len;i++){printf("%d",a[i]);codes[N]->code[i]=a[i];}N++;printf("\n");}else{a[len]=0;huffmancoding(T->lchild,len+1,codes);a[len]=1;huffmancoding(T->rchild,len+1,codes);}}}voidinitlize(char*str,btree&T,elemtype**codes,char*s){inti=0,j,n=0,k=0,h;elemtype*a[20];for(j=0;j<20;j++)a[j]=NULL;while(str[i]!=0){for(j=0;j<i;j++){if(str[j]==str[i]){for(h=0;h<n;h++){if(a[h]->ch==str[j])break;}a[h]->weight++;break;}}if(j>=i){a[k]=(elemtype*)new(elemtype);a[k]->ch=str[i];a[k]->weight=1;n++;k++;}i++;}cout<<n<<endl;createhuffman(T,a,n);cout<<endl;savetree(s);k=0;cout<<"所求哈夫曼編碼表如下:"<<endl;huffmancoding(T,k,codes);}voidmain(){btreet=NULL;elemtype*b[26];charstr[100];chars[50];cout<<endl;cout<<"**哈夫曼編碼程序**"<<endl;cout<<end
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024版石灰石供應合同模板
- 二零二五年度應急管理及救援裝備租賃合同3篇
- 2025年度人工智能專利池共享與許可合同3篇
- 2025年度城市公共交通設施建設合同規(guī)范3篇
- 二零二四年商業(yè)地產項目新型業(yè)態(tài)招商代理服務合同樣本3篇
- 年度芳香除臭化學品:空氣清新劑產業(yè)分析報告
- 2025年新型材料現貨購銷合同標準范本3篇
- 2024-2025學年高中歷史第二單元古希臘和古羅馬的政治制度單元總結學案含解析岳麓版必修1
- 2025年度校園配送服務食品安全快速檢測質量管理體系建設合同3篇
- 2025年度人工智能算法工程師保密協議及知識產權保護合同3篇
- 寺廟祈?;顒臃桨?共6篇)
- 2025年病案編碼員資格證試題庫(含答案)
- 企業(yè)財務三年戰(zhàn)略規(guī)劃
- 提高膿毒性休克患者1h集束化措施落實率
- 山東省濟南市天橋區(qū)2024-2025學年八年級數學上學期期中考試試題
- 主播mcn合同模板
- 新疆2024年中考數學試卷(含答案)
- 2024測繪個人年終工作總結
- DB11 637-2015 房屋結構綜合安全性鑒定標準
- 制造業(yè)生產流程作業(yè)指導書
- DB34∕T 4444-2023 企業(yè)信息化系統上云評估服務規(guī)范
評論
0/150
提交評論