给定n个叶子结点的权值,构造一棵哈夫曼树,用顺序结构存储并输出。
每个结点要求包含序号、值、父结点(其序号值)、左孩子结点(其序号值)和右孩子结点(其序号值)。同一结点的左右孩子结点,左孩子结点的权值较小,右孩子结点的权值较大,如果左右孩子结点的权值相同,则左孩子结点的序号较小,右孩子结点的序号较大。
第一行一个整数n(1<= n <= 100),表示有n个叶子结点;
第二行为n个整数,其最大值不超过100,分别为n个叶子结点的权值。
多行,每行为一个哈夫曼树结点的信息,按序号由小到大输出。
每个结点的信息包括:序号、值、父结点、左孩子、右孩子,同一行各数据间用一个空格分隔。
5 5 4 3 2 1
1 5 8 0 0 2 4 8 0 0 3 3 7 0 0 4 2 6 0 0 5 1 6 0 0 6 3 7 5 4 7 6 9 3 6 8 9 9 2 1 9 15 0 7 8
奇遇编程