2014-03-29 2 views
1

노드 클래스가 있고 트리에 요소를 추가 할 때 문제를 좁히려 고합니다. 내 노드 클래스가 트리에 추가 할 노드를 제대로 만들지 못하고 있다고 생각합니다. 각 노드를 인쇄 할 때 메모리 주소가 반환됩니다. 다른 것을 인쇄 할 수없는 것 같습니다. 내 노드 클래스가 잘못되었는지 판단하는 데 도움이 될 것입니다. 어떻게 내 프로그램의 인쇄Java : 메모리 주소 또는 null 만 표시하는 이진 트리 노드

예 :

([[email protected]) 
([[email protected]) 
([[email protected]) 
([[email protected]) 

TreeNode 클래스 :

public class TreeNode { 

char[] data; 
TreeNode left, right, parent; 
// used for printing: 
int column; 
int row; 
int center; 


public TreeNode(char[] data) { 
    this.data = data; 
    left = right = parent = null; 
} 

@Override 
public String toString() { 
    return "(" + data + ")"; 
} 
public int return_letter(){ 
    char x = data[0]; 
    int b = Character.getNumericValue(x); 
    return b;   
} 

public int findMaxDepth() { 
    int lmax = 0; 
    int rmax = 0; 
    if (left != null) { 
     lmax = left.findMaxDepth(); 
    } 
    if (right != null) { 
     rmax = right.findMaxDepth(); 
    } 
    return 1 + Math.max(lmax, rmax); 
} 

} 
+1

: 당신이 뭔가를 할, 또는 방법의 데이터를 인쇄되는 배열의 항목의 문자열 표현을 얻기 위해이 방법 안에 Arrays.toString(data)을 사용할 수 있습니다 ... 자세한 정보를 제공해주십시오. 문제를 보여주는 짧지 만 완전한 프로그램이 도움이 될 것입니다. –

+0

오류 메시지를 게시 하시겠습니까? – sunrize920

+3

'@Override public String toString() {return "("+ data + ")";}'는 원하는 것을 인쇄하지 않습니다. 'Arrays.toString (data)'를 사용하여 배열 내용의 문자열 표현을 가져옵니다. –

답변

1
public String toString() { 
    return "(" + data + ")"; 
} 

당신하고 발생한 문제는 여기에있다. toString()data 및 포함 된 요소의 메모리 참조를 반환합니다. 당신은 정말 당신의 문제를 설명하지 않은

for(int i = 0; i < data.length; i++){ 
    println(data[i]); 
}