我们获得了Node类,我们必须实现递归插入。插入后我输出错误,我不知道为什么
给出了printTree函数:
public void printTree() {
printTree(root,0);
}
public void printTree(TreeNode<T> p, int depth) {
if (p != null) {
if (!(p.left == null && p.right == null))
printTree(p.right,depth+1);
for (int i = 1; i <= depth; i++)
System.out.print(" ");
if (p.left == null && p.right == null)
System.out.println(p.info + " ");
else System.out.println(p.info);
printTree(p.left,depth+1);
}
}
这是我的插入功能:
public void insert(T info)
{
root = insert(root, info);
}
protected TreeNode<T> insert(TreeNode<T> node, T info)
{
if (node == null)
{
node = new TreeNode<T>(info);
}
else if (info.compareTo(node.info) < 0)
{
node.left = insert(node.left,info);
}
else
{
node.right = insert(node.right,info);
}
return node;
}
这是我的主要内容:
public static void main(String[] args) {
// TODO code application logic here
Tree<Integer> t = new Tree<Integer>();
t.insert(4);
t.insert(3);
t.insert(5);
t.insert(1);
t.printTree();
}
我得到的输出是:
5
4
3
1
而不是:
4
3 5
1
答案 0 :(得分:0)
输出对我来说似乎没问题。
printTree
方法无法正常工作。它从上到下打印树,但在屏幕上输出“旋转”90度
因此,最高级别应位于第一列,最后一级非空列的底部级别。