【问题标题】:Traversing Huffman Tree in Java在 Java 中遍历 Huffman 树
【发布时间】:2014-11-05 15:29:18
【问题描述】:

我正在尝试使用递归方法遍历 Huffman 树,并为每个叶节点添加一个 Code 记录到 ArrayList。这是我目前所拥有的。

private void traverse(ArrayList<Code> code, BinaryTreeNode<Letter> node,
                     String prefix) {
        // TODO:  Fill in this method
    if (root!=null){
        traverse(code, node.left, prefix);
    }
    if (root!=null){
        traverse(code, node.right, prefix);
    }
    if(node.left==null && node.right==null){
        code.add(node);
    }

code.add(node) 也报错。

【问题讨论】:

    标签: java recursion tree huffman-code


    【解决方案1】:

    ArrayList codeCode 类型,在最后一行,您将 node type object 添加到 code。您需要更改代码以匹配以下内容:

    还有一件事是包含所有节点的值(假设您要添加每个节点的值)

    private void traverse(ArrayList<Letter> code, BinaryTreeNode<Letter> node,
                         String prefix) {
            // TODO:  Fill in this method
        if(node==null) return; //return if this node is empty.
        if (node!=null){
            traverse(code, node.left, prefix);
        }
        if (node!=null){
            traverse(code, node.right, prefix);
        }
        //if you want to include this node value into ur array then add it like this
        code.add(node.getData());             //assuming your BinaryTreeNode has a method getData()
    

    }

    注意:我不知道String prefix 应该是什么。所以我就让它保持原样。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-08-16
      • 1970-01-01
      相关资源
      最近更新 更多