2016-04-06 2 views
-1

Я создал дерево huffman, и теперь мне нужно пройти дерево huffman для декодирования сообщения. Я пишу метод для перемещения дерева huffman, и я не могу получить доступ к текущему узлу моего дерева, хотя я передал ему свое дерево. Любая помощь была бы оценена - грубые комментарии нет.Не удалось получить доступ к корню из дерева

 //Code that creates huffman tree not shown 
//method to find traverse at very bottom 
    public static class Tree implements Comparable<Tree>{ 
    Node root; 


public Tree(Tree t1, Tree t2){ 
    root = new Node(); 
    root.left = t1.root; 
    root.right = t2.root; 
    root.weight = t1.root.weight + t2.root.weight; 
} 

public Tree(int weight, char element){ 
    root = new Node(weight, element); 
} 

@Override 
public int compareTo(Tree t){ 
    if(root.weight < t.root.weight){ 
     return 1; 
    }else if(root.weight == t.root.weight){ 
     return 0; 
    }else 
     return -1; 
} 

public class Node{ 
    char element; 
    int weight; 
    Node left; 
    Node right; 
    String code = ""; 

    public Node(){ 

    } 

    public Node(int weight, char element){ 

     this.weight = weight; 
     this.element = element; 
    } 

    public void findLetter(Tree tree){ 
    char letter; 


    Node.current = root; //Red lines involving everything with Node or current from here on 
    if(code[i] == 0){ 
     if(current.left == null){ 
     letter = current.element; 
    }else{ 
     current = Node.left; 

    } 
}else if(code[i] == 1){ 
    if(current.right == null){ 
     letter = current.element; 
    }else{ 
     current = Node.right; 
    } 
} 
    System.out.printf(""+ letter); 
} 
+0

Дерево создается путем анализа частоты двоичных символов. Я не верил, что имеет смысл показать весь код, который находит частоту, и создает дерево, ect. Обход дерева находится в методе findLetter(), расположенном в нижней части кода. –

ответ

1
Node.current = root; 

Там не член с именем current в классе Node. И даже если он существует current = root - это код для назначения current.

Смежные вопросы