最近在做哈夫曼树有一个让我头疼好久的事
typedef struct A{
float weight;
int lch,rch,parent;
}HTNode,*HuffmanTree;
我在这里犯蒙
HuffmanTree HT;
HT=new HTNode[m+1];
后来查阅资料发现自己typedef没有理解不够,
这里的HTNode是struct A的别名,而*HuffmanTree是struct A*的别名;
无聊的我想知道如果我不用typedef会怎么样,于是
struct A{
float weight;
int lch,rch,parent;
}HTNode,*HuffmanTree;//HTNode 此处没有用。
我发现HT=new HTNode[m+1];会报错;
报错的原因:
现在HT 是不可以有的(相当于int a ;我用a作为一个类型a ,让他产生一个变量 a b;,b是不可以的)
此时的HTNode是一个普通的变量,不在代表struct A.
此时申请
*HuffmanTree HT;
HT=new A[m+1];