永发信息网

随便发个数据结构课程设计要经典的不用修改的可以运行的

答案:1  悬赏:60  手机版
解决时间 2021-05-06 01:07
随便发个数据结构课程设计要经典的不用修改的可以运行的
最佳答案

Huffman 编码

一、实验目的
熟悉Huffman编码方法。
了解并弄懂Huffman编码实现信息的无损压缩原理。

二、实验要求
熟悉C语言编程。

三、实验内容
1.根据给定的n个权值(w1, w2, …, wn)构成n棵二叉树的集合F={T1, T2, …, Tn},其中每棵二叉树Ti中只有一个带树为Ti的根结点
2.在F中选取两棵根结点的权值最小的树作为左右子树构造一棵新的二叉树,且置其根结点的权值为其左右子树权值之和
3.在F中删除这两棵树,同时将新得到的二叉树加入F中
4.重复2, 3,直到F只含一棵树为止

四、实验步骤
1.用C语言实现二叉树的说明
2.输入n个权值,并生成n个二叉树
3.对n个二叉树逐步生成Huffman树
4.对Huffman树的每个叶子结点生成编码

附:实验程序
#include <stdio.h>
#define M 10
#define MAX 100

typedef struct
{
int data;
int pa,lc,rc;
}JD;

void huffman(int n,int w[],JD t[])
{ int i,j,k,x1,x2,m1,m2;
for(i=1;i<(2*n);i++)
{ t[i].pa=t[i].lc=t[i].rc=0;
if(i<=n)
t[i].data=w[i-1];
else
t[i].data=0;
}
for(i=1;i<n;i++)
{ m1=m2=MAX;
x1=x2=0;
for(j=1;j<(n+i);j++)
{ if((t[j].data<m1)&&(t[j].pa==0))
{ m2=m1; x2=x1;
m1=t[j].data; x1=j;
}
else if((t[j].data<m2)&&(t[j].pa==0))
{ m2=t[j].data; x2=j; }
}
k=n+i;
t[x1].pa=t[x2].pa=k;
t[k].data=m1+m2;
t[k].lc=x1;
t[k].rc=x2;
}
}

void main()
{ int i,j,n=4;
static int w[]={7,5,2,4};
JD t[M];
huffman(n,w,t);
for(i=1;i<=2*n-1;i++)
printf("%d ,%d ,%d ,%d \n",t[i].lc,t[i].data,t[i].rc,t[i].pa);
printf("\n\n");
getch();
}

我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
还原精灵 应该怎么弄/?
东信手机为什么不可以下载手机QQ阿?
豆印,斑怎么样自制祛它们的秘方
增城搭车到清远要多少车费?怎样搭车?
奇瑞QQ A8 在徐州多少钱能买到啊??
野生甲鱼怎么钓,怎样辨别甲鱼是否野生/养
拉洗地址在哪,我要去那里办事
大理丽江香格里拉民居小院提供住宿的电话
QQ自由幻想人物头像上面出现奇怪的数字
谁能给我注册个ICQ的号码?我老是注册不成功
HD3200的笔记本显卡怎么样?
石家庄好不好玩
饿待天亮是什麽意思嘞?
什么东西我们每个人都想得到,但是都没人能得
NOKIA的蓝牙耳机怎么用
推荐资讯
街头篮球黑妹
急!武汉都有哪些理工大学?
柯桥有二手针织布料市场吗?
如何练好各种华彩
义乌小商品市场的帽子是从哪进的货?
高中语文《史记》这本书老师主要讲什么呀?
东安路/新市街(路口)怎么去啊,有知道地址的
你愿意跟你的情敌做朋友吗?
我还怎样对她
唐诗三百首全集打印,请问图文版唐诗三百首在
飞车活动任务什么时候刷?
二手房买卖怎么算首付,买二手房要交按揭担保
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?