一些是霍夫曼特里的根源。 我试图打印二进制遍历PreOrder中的Trie,但二进制输出没有显示。有人可以提供帮助
Huffman.writeTrie(some);
protected static void writeTrie(Node x) {
if (x.isLeaf()) {
BinaryStdOut.write(true);
BinaryStdOut.write(x.ch, 8);
return;
}
BinaryStdOut.write(false);
writeTrie(x.left);
writeTrie(x.right);
}
答案 0 :(得分:0)
只是用谷歌搜索看看BinaryStdOut是什么,并从普林斯顿的算法参考文献中找到了这个:http://algs4.cs.princeton.edu/55compression/BinaryStdOut.java.html
它在评论中说:
客户端必须在完成后刷新()输出流 写位。
我的代码中没有看到同花顺,所以可能缺少了?听起来像flush正在调用BufferedOutputStream.flush(),如果它丢失了,它应该为你做。没有看到完整的代码很难回答。