void createHFMcode(HFMnode *node, HFMcode *hcode, int n) { }
int i;
for (i = 1; i <= n; i++) { }
HFMcode d;
//哈夫曼树最大层数就是元素的个数 d.start = n; int num = i;
int father = node[num].parent; while (father != 0) { }
hcode[i] = d;
if (node[father].lchild == num) else
d.code[d.start--] = '1'; d.code[d.start--] = '0';
num = father;
father = node[num].parent;
//打印每个节点的编码
void printHFMcode(HFMnode * node, HFMcode * hcode, int n) { }
int _tmain(int argc, _TCHAR* argv[]) {
HFMnode node[2 * MAX]; HFMcode hcd[MAX];
cout << \请输入案例个数:\ << endl; int cases; cin >> cases; while (cases--) { int i;
for (i = 1; i <= n; i++) { }
cout << node[i].data << \:\;
for (int k = hcode[i].start + 1; k <= n; k++)
cout << hcode[i].code[k];
cout << endl;
cout << \请输入元素个数:\ << endl; int n; cin >> n; int i;
for (i = 1; i <= n; i++) { }
for (i = 1; i <= 2 * n - 1; i++) { }
//建立哈夫曼树
createHFMtree(node, n); //求每个节点的哈夫曼编码 createHFMcode(node, hcd, n); //打印每个节点的编码
cout << \输出每个节点的哈夫曼编码:\ << endl; printHFMcode(node, hcd, n);
node[i].parent = node[i].lchild = node[i].rchild = 0; cout << \输入第\ << i << \个节点的值:\ << endl; cin >> node[i].data;
cout << \输入它的权重:\ << endl; cin >> node[i].weight;
}
} return 0;