急!跪问这个程序主函数第二行:huffcode hcd[MAX],d; 是什么意思?请哪位高人指点,小弟不胜感激!

#include<stdio.h>#include<string.h>#defineMAX80typedefstruct{chardata;intweight;intpa... #include<stdio.h>
#include <string.h>
#define MAX 80
typedef struct{
char data;
int weight;
int parent;
int left;
int right;
} huffnode;
typedef struct {
char cd[MAX];
int start;
}huffcode;
void main()
{
huffnode ht[2*MAX]; //定义变量
huffcode hcd[MAX],d;
char s[100];
char datacode[1000];
char *p;
int i,k,f,l,r,n,m,c,m1,m2,count,t,sum;
printf("元素个数: "); //输入结点信息
scanf("%d",&n);
m=2*n-1;
for(i=1;i<=n;i++)
{
getchar();
printf("第%d个元素 =>\t 结点值: ",i);
scanf("%c",&ht[i].data);
printf("\t 权重: ");
scanf("%d",&ht[i].weight);
}
for(i=1;i<=2*n-1;i++) //初始化
ht[i].parent=ht[i].left=ht[i].right=0;

for(i=n+1;i<=2*n-1;i++) // 构造Huffmantree
{
m1=998;m2=999; //选择权值最小的两个结点
l=r=0;
for (k=1;k<=i-1;k++)
if(ht[k].parent==0)
if(ht[k].weight<m1)
{
m2=m1;
r=l;
m1=ht[k].weight;
l=k;
}
else if(ht[k].weight<m2)
{
m2=ht[k].weight;
r=k;
}
ht[l].parent=i;
ht[r].parent=i;
ht[i].weight=ht[l].weight+ht[r].weight;
ht[i].left=l;
ht[i].right=r;
}
for (i=1;i<=n;i++) //根据HuffmanTree,进行编码
{
d.start=n+1;
c=i;
f=ht[i].parent; //逐个字符求编码
while(f!=0)
{
if(ht[f].left==c)
d.cd[--d.start]='0';
else
d.cd[--d.start]='1';
c=f;
f=ht[f].parent;
}
hcd[i]=d;
}

printf("输出哈夫曼编码 :\n");//输出字符的Huffman编码
for(i=1;i<=n;i++)
{
printf("%c : ",ht[i].data);
for(k=hcd[i].start;k<=n;k++)
printf("%c",hcd[i].cd[k]);
printf(" ");

}
printf("请输入:\n"); //对输入的字符串编码
scanf("%s",&s);

count=0;t=0;
char code[MAX];//这里加入这一句就可以了.
for(p=s;*p!='\0';p++)
{
for(i=1;i<=n;i++)
{
if(*p==ht[i].data)
{
for(k=hcd[i].start;k<=n;k++)
{ printf("%c",hcd[i].cd[k]);
code[++count]=hcd[i].cd[k];}
}
}
}
int g;
printf(" \n" );
printf("**********************************************\n" );
printf("输入编码:\n"); //对输入的编码进行译码
scanf("%d",&g);
sum=0;
while(count>sum)
{
f=m; //从根到叶子结点译码
while(f>n)
{
if(datacode[++sum]=='0')
f=ht[f].left;
else f=ht[f].right;
}
printf("%c",ht[f].data);
}
printf("\n");
printf("*******************************************\n");
} //程序结束
展开
 我来答
ssilspro
2011-04-22 · TA获得超过2625个赞
知道大有可为答主
回答量:1148
采纳率:0%
帮助的人:1717万
展开全部
和 int a,b;的意思一样
huffcode hcd[MAX],d;
定义huffcode类型的 hcd[MAX]数组和huffcode类型的变量d
Ckpmr0
2011-04-23 · TA获得超过128个赞
知道答主
回答量:176
采纳率:0%
帮助的人:57.1万
展开全部
o
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式