void CreateHuffmanTree(HuffmanTree*h,int n) {
int i, w, m;int s1, s2;
char e;
m = 2 * n - 1;
*h = (HuffmanTree)malloc((m + 1) * sizeof(HTNode));
printf("请输入字符和权重\n");
for (i = 1;i <= n;i++) {
scanf_s(" %c %d", &e, 4, &w);
(*h)[i].data = e;
(*h)[i].weight = w;
(*h)[i].parent = 0;
(*h)[i].Lchild = 0;
(*h)[i].Rchild = 0;
}
for (i = n + 1;i <= m;i++) {
(*h)[i].weight = 0;
(*h)[i].parent = 0;
(*h)[i].Lchild = 0;
(*h)[i].Rchild = 0;
}
for (i = n + 1;i <= m;i++) {
Select(h, n - 1, &s1, &s2);
(*h)[i].weight = (*h)[s1].weight+ (*h)[s2].weight;
(*h)[i].parent = 0;
(*h)[i].Lchild = s1;
(*h)[i].Rchild = s2;
(*h)[s1].parent = i;
(*h)[s2].parent = i;
}
}