Java:仅显示内存地址或空值的二叉树节点
我有一个节点类,在向树中添加元素时,我只是想缩小问题的范围。我认为我的节点类只是没有正确地创建要添加到树中的节点。当我打印每个节点时,我相信它会返回内存地址。我似乎无法让它打印任何其他内容。如果能帮助确定我的节点类是否有故障,那就太好了 我的程序打印的内容示例:Java:仅显示内存地址或空值的二叉树节点,java,binary-tree,Java,Binary Tree,我有一个节点类,在向树中添加元素时,我只是想缩小问题的范围。我认为我的节点类只是没有正确地创建要添加到树中的节点。当我打印每个节点时,我相信它会返回内存地址。我似乎无法让它打印任何其他内容。如果能帮助确定我的节点类是否有故障,那就太好了 我的程序打印的内容示例: ([C@f72003d) ([C@56dacb7) ([C@63662529) ([C@4711d9ba) TreeNode类: public class TreeNode { char[] data; TreeNode left,
([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);
}
}
你的问题就在这里toString()
正在返回数据及其包含元素的内存引用。您可以在此方法中使用Arrays.toString(data)
来获取数组中项目的字符串表示形式,也可以在打印数据的方法中执行以下操作:
for(int i = 0; i < data.length; i++){
println(data[i]);
}
for(int i=0;i
您还没有真正描述您的问题。。。请向我们提供更多信息。一个简短但完整的程序来演示这个问题会很有帮助。您能发布您收到的任何错误消息吗?@Override public String toString(){return”(“+data+”);}
将不会打印您想要的内容。使用Arrays.toString(data)
获取数组内容的字符串表示形式。谢谢邹祖,就这样!
for(int i = 0; i < data.length; i++){
println(data[i]);
}