0
这是很难解释所需的结果,但我在这里特意找到的只是你的典型树的输出,如果你把它转向90度左边。如何在控制台中显示霍夫曼树?
printTree(tree, "\t", 0);
private static void printTree(HTree tree, String space, int height) {
assert tree != null;
if (tree instanceof HLeaf) {
HLeaf leaf = (HLeaf)tree;
for (int k = 0; k < height; k++)
System.out.print(space);
System.out.println("(" + leaf.value + ")");
}
else if (tree instanceof HNode) {
HNode node = (HNode)tree;
// traverse left
printTree(node.left, space, height++);
// traverse right
printTree(node.right, space, height++);
}
}
输出看起来是这样的:
(e)
(s)
(o)
(w)
(l)
(n)
(t)
(h)
(k)
()
(a)
正如你所看到的,并不像霍夫曼树非常好。