- 13
- 0
- 约3.74千字
- 约 6页
- 2018-04-15 发布于浙江
- 举报
[2018年最新整理]基于哈夫曼编码的通信系统的设计与实现
河北工业大学
《数据结构》课程实验
实 验 报 告
题目: 基于哈夫曼编码的通信系统的设计与实现
专业:
班级:
姓名:
学号:
完成日期:
一、试验内容
利用哈夫曼编码进行通信可以大大提高信道利用率,缩短信息传输时间,降低传输成本。但是,这要求在发送端通过一个编码系统对待传输数据预先编码,在接收端将传来的数据进行译码(复原)。对于双工信道(即可以双向传输信息的信道),每端都需要一个完整的编/译码系统。试为这样的信息收发站设计一个基于哈夫曼编码的通信系统。
二、试验目的
(1)掌握二叉树的存储结构及其相关操作。
(2)掌握构造哈夫曼树的基本思想,及其编码/译码过程。
三、流程图
四、源程序代码
#includestdio.h
#includestdlib.h
#includestring.h
int hfmbm(int n,int m,char p[])
{
typedef struct{
float we;
int pa,lc,rc;
}htnode,*huff;
huff HT;
typedef char **huffman;
huffman HC;
FILE *fp,*fp1;
int i,j,t,d,min[2],*h;
float *g;
char a,*q[100],*temp;
h=(int *)malloc(m);
for(i=0;i100;i++){
q[i]=(char *)malloc(m+1);
//对信息进行字符编码
for(j=0;jm;j++){
if(i==0){h[j]=1;q[i][j]=p[h[j]];continue;}
else if(j==0){h[j]+=1;q[i][j]=p[h[j]];}
else q[i][j]=p[h[j]];
if(h[j]n){h[j]=1;h[j+1]+=1;q[i][j]=p[h[j]];}
}
q[i][j]=\0;
}
fp=fopen(zifu.txt,w+);//字符编码写入文件
for(i=0;i100;i++){fputs(q[i],fp);}
fclose(fp);
g=(float *)malloc(n);
for(i=0;in;i++) g[i]=0;
for(i=0;i100;i++)
for(j=0;jm;j++)
for(t=1;tn+1;t++)
if(q[i][j]==p[t]) g[t-1]++;
for(i=0;in;i++) g[i]=g[i]/800;//计算每个字符出现的概率
HT=(huff)malloc((2*n-1)*sizeof(htnode));
//计算哈弗曼编码
for(i=0;in;i++){HT[i].we=g[i];HT[i].pa=0;HT[i].lc=-1;HT[i].rc=-1;}
for(;i2*n-1;i++){
for(t=0;t2;t++){
for(j=0;ji;j++){
if(HT[j].pa==0){min[t]=j;continue;}
if(HT[j].pa==0HT[j].weHT[min[t]].we) min[t]=j;
}
HT[min[t]].pa=i;
}
HT[i].we=HT[min[0]].we+HT[min[1]].we;
HT[i].pa=0;HT[i].lc=min[0];HT[i].rc=min[1];
}
HC=(huffman)malloc(n);
temp=(char *)malloc(m+1);
t=2*n-2;
d=-1;
//进行哈夫曼编码
for(i=0,d=0;d!=n;i++){
if(HT[t].lc!=-1){t=HT[t].lc;temp[i]=0;}
else if(HT[t].rc==-1){
if(t=0tn){d++;HC[t]=(char *)malloc(i+1);for(j=0;ji;j++)HC[t][j]=te
您可能关注的文档
- [2018年最新整理]场论与张量运算简介.ppt
- [2018年最新整理]均值不等式第二课时---公式变形及拓展.ppt
- [2018年最新整理]均匀控制系统.ppt
- [2018年最新整理]地震资料解释.ppt
- [2018年最新整理]场效应器件物理0_绪论.ppt
- [2018年最新整理]均方分布介绍.ppt
- [2018年最新整理]地震资料构造解释2.ppt
- [2018年最新整理]均值极差图培训资料新.ppt
- [2018年最新整理]坐标中的图形变换.ppt
- [2018年最新整理]坐标变换与参数方程.ppt
- 伟明环保-市场前景及投资研究报告-境内业务稳健运行,印尼市场贡献边际增量.pdf
- 桂东县法院系统招聘考试真题2025.pdf
- 贵州省黔南布依族2026年中考三模物理试题及答案.pdf
- 贵州省黔南州2026年中考语文二模试卷附答案.pdf
- 贵州省铜仁市2026年中考语文二模试卷附答案.pdf
- 2026上半年安徽事业单位联考合肥市庐江县招聘36人备考题库及一套完整答案详解.docx
- 贵州省毕节市2026年中考语文一模试卷附答案.pdf
- 贵州省贵阳市南明区2026年中考语文一模试卷附答案.pdf
- 2026上半年安徽事业单位联考合肥市庐江县招聘36人备考题库及一套参考答案详解.docx
- 贵州省贵阳市白云区2026年中考二模物理试题附答案.pdf
最近下载
- 《城市食品安全规制问题与对策研究》8800字.docx VIP
- DB37_T 4814-2025 高速公路路基超厚度施工技术规范.docx VIP
- DB37_T 4811.4-2025 工业互联网标识解析 仪器仪表 第4部分:应用服务平台运营规范.docx VIP
- DB37_T 4811.1-2025 工业互联网标识解析 仪器仪表 第1部分:被动标识载体应用指南.docx VIP
- 安川变频器技术手册V1000 中文.pdf VIP
- 五四以来反动派、地主资产阶级学者尊孔复古言论辑录-北京出版.pdf VIP
- GB_T 15558.2-2023 燃气用埋地聚乙烯(PE)管道系统 第2部分:管材.pdf VIP
- 2026年河北体育学院辅导员招聘备考题库必考题.docx VIP
- 海洋养殖网箱框架系统用高密度聚乙烯(HDPE)管材及配件.pdf VIP
- F108012【复试】2023东南大学085400电子信息《复试559微机在生物医学中的应用之单片机.pdf VIP
原创力文档

文档评论(0)