// Print out the codes; insert these codes into CodeTable
 static void outputTree(HuffBaseNode<Character> node, String prefix) {
   assert node != null : "Bad input tree";
   // This is a full binary tree so must not be null subtree
   if (node.isLeaf()) {
     System.out.println(((HuffLeafNode<Character>) node).element() + "\t" + prefix);
     char temp = ((HuffLeafNode<Character>) node).element();
     codeTable.addElement(new Code(temp, prefix));
     total += prefix.length() * node.weight();
   } else {
     outputTree(((HuffInternalNode) node).left(), prefix + "0");
     outputTree(((HuffInternalNode) node).right(), prefix + "1");
   }
 }