请问这个报错怎么解决呢?

题目描述

有关哈夫曼树的报错问题

题目来源及自己的思路

书中的源程序

相关代码

粘贴代码文本(请勿用截图)

#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

阅读 1.3k
1 个回答
ht[i]={w[i],0,0,0};    /*1~n号单位存放叶子节点,初始化*/

这个是赋值,不是初始化。赋值不能这么写。
需要一个元素一个元素得赋值。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进