我有一个节点类,我只是想在向树中添加元素时缩小问题范围。我认为我的节点类没有正确创建要添加到树中的节点。当我打印每个节点时,它会返回内存地址,我相信。我似乎无法将其打印出来。确定我的节点类是否有问题的任何帮助都会很棒。
我的程序打印的示例:
([C@f72003d)
([C@56dacb7)
([C@63662529)
([C@4711d9ba)
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);
}
}
答案 0 :(得分:1)
public String toString() {
return "(" + data + ")";
}
你的问题就在这里。 toString()
返回data
及其包含元素的内存引用。您可以在此方法中使用Arrays.toString(data)
来获取数组中项目的字符串表示形式,或者在打印数据的方法中,执行以下操作:
for(int i = 0; i < data.length; i++){
println(data[i]);
}