二叉树 toString 即使在覆盖后也打印哈希码
Binary Tree toString prints hashcode even after override
我制作了一个将字符(字母)插入二叉搜索树的程序。我没有遇到任何错误,但是当我调用 toString 方法时,它仅 打印输出的一部分,哈希码为 ht=10 [K=G R=BTNode@5b6f7412]
。我可能忽略了一些东西,所以如果你能帮助我,我将不胜感激。谢谢!
预期输出 (不是准确的输出,而是这种格式)
ht=2 [K=A L=[K=B R=[K=C]] R=[K=D L=[K=E]]]
toString 方法
public String toString()
{
String s = "";
BTNode<T> n = root;
if (n == null)
{
return "";
}
if (n != null)
{
s = "ht=" + height + " [K=" + n.info;
if (n.left != null)
{
s = s + " L=" + n.left.toString() + "]";
}
if (n.right != null)
{
s = s + " R=" + n.right.toString() + "]";
}
}
return s;
}
主要Class
public static void main(String args[])
{
BST<Character> bst = new BST<>(); // instantiate BST object
// insert values to bst
bst.insert('A');
bst.insert('B');
bst.insert('C');
bst.insert('D');
bst.insert('E');
bst.insert('F');
// print bst1
System.out.println(bst.toString());
}
您必须在 BTNode
中编写具有确切签名 public String toString()
的方法。
写 public String toString(BTNode<N>)
无济于事。
我制作了一个将字符(字母)插入二叉搜索树的程序。我没有遇到任何错误,但是当我调用 toString 方法时,它仅 打印输出的一部分,哈希码为 ht=10 [K=G R=BTNode@5b6f7412]
。我可能忽略了一些东西,所以如果你能帮助我,我将不胜感激。谢谢!
预期输出 (不是准确的输出,而是这种格式)
ht=2 [K=A L=[K=B R=[K=C]] R=[K=D L=[K=E]]]
toString 方法
public String toString()
{
String s = "";
BTNode<T> n = root;
if (n == null)
{
return "";
}
if (n != null)
{
s = "ht=" + height + " [K=" + n.info;
if (n.left != null)
{
s = s + " L=" + n.left.toString() + "]";
}
if (n.right != null)
{
s = s + " R=" + n.right.toString() + "]";
}
}
return s;
}
主要Class
public static void main(String args[])
{
BST<Character> bst = new BST<>(); // instantiate BST object
// insert values to bst
bst.insert('A');
bst.insert('B');
bst.insert('C');
bst.insert('D');
bst.insert('E');
bst.insert('F');
// print bst1
System.out.println(bst.toString());
}
您必须在 BTNode
中编写具有确切签名 public String toString()
的方法。
写 public String toString(BTNode<N>)
无济于事。