题目描述
有关哈夫曼树的报错问题
题目来源及自己的思路
书中的源程序
相关代码
粘贴代码文本(请勿用截图)
#include<stdio.h>
#define N 20
#define M 2*N-1
typedef struct //哈夫曼树的定义
{
int weight;
int parent;
int LChild;
int RChild;
}HTNode,HuffmanTree[M+1];
void CrtHuffmanTree(HuffmanTree ht,int w[],int n)
{
/*构建哈夫曼树ht[M+1],w[]存放n个权值*/
int m,i,s1,s2;
for(i=1;i<=n;i++)
ht[i]={w[i],0,0,0}; /*1~n号单位存放叶子节点,初始化*/
m=2*n-1;
for(i=n+1;i<=m;i++)
ht[i]={0,0,0,0}; /*n+1~M号单位存放非叶子节点,初始化*/
/*初始化完毕,对应算法步骤1*/
for(i=n+1;i<=m;i++)/*创建非叶子结点,建哈夫曼树*/
{
select(ht,&s1,&s2); /*a 在ht[1]~ht[i-1]中选择两个parent为0且weight最小的结点,
其序号分别赋值给s1,s2 */
ht[i].weight=ht[s1].weight+ht[s2].weight;
ht[s1].parent=i;ht[s2].parent=i;
ht[i].LChild=s1;ht[i].RChild=s2;
}
}
你期待的结果是什么?实际看到的错误信息又是什么?
D:\C语言实践\HuffmanTree.c In function 'CrtHuffmanTree':
19 14 D:\C语言实践\HuffmanTree.c [Error] expected expression before '{' token
22 14 D:\C语言实践\HuffmanTree.c [Error] expected expression before '{' token
这个是赋值,不是初始化。赋值不能这么写。
需要一个元素一个元素得赋值。