如何在顺序遍历(java)中打印树?

如何在顺序遍历(java)中打印树?,java,Java,我正在打印我的AVLtree,如下所示: . 50 55 . . 60 . 65 . . 70 –节点条目前应加上点的深度编号,其中深度表示节点在树中的深度 根包含55,左子包含50,右子包含65,右左子包含60,右右子包含70 下面是到目前为止我的代码。有人能帮忙吗 public string Display() { StringBulder sb= new StringBulder(); inOrder (node,1,sb); return sb.toSt

我正在打印我的AVLtree,如下所示:

. 50

55

. . 60

. 65

. . 70
–节点条目前应加上点的深度编号,其中深度表示节点在树中的深度

根包含55,左子包含50,右子包含65,右左子包含60,右右子包含70

下面是到目前为止我的代码。有人能帮忙吗

public string Display() {
    StringBulder sb= new StringBulder();
    inOrder (node,1,sb);
    return sb.toString();
}

// inorder traversal
public void inOrder (AVLNode<E> node, int depth, StringBuilde sb) {
    for (int i=1;i < depth; i++){
        sb.append(".");
    }

    if(node == null) return;

    inOrder(node.getleft(), depth+1,sb);
    sb.append(node.data);
    inOrder(node.getright(),depth+1,sb); 
}
公共字符串显示(){
StringBulder sb=新StringBulder();
顺序(节点1,sb);
使某人返回字符串();
}
//有序遍历
公共void索引(AVLNode节点、int深度、StringBuilde sb){
for(int i=1;i
这很简单。只需将左右节点的深度增加1,并将点的深度数附加到
sb
。然后追加数据。以递归方式执行此操作。

以下是代码:

void inOrder(AVLNode node, int depth, StringBuilder sb)
{
  if(node == null) return;

  inOrder(node.left, depth+1, sb);

  for(int a=0;a<depth;a++) sb.append(".");
  sb.append(node.data + "\n");

  inOrder(node.right, depth+1, sb);

}
void索引顺序(AVLNode节点、int深度、StringBuilder sb)
{
if(node==null)返回;
顺序(node.left,depth+1,sb);

对于(int a=0;a到目前为止,您尝试了什么?它的哪些特定部分给您带来了问题?除非我遗漏了什么,否则这是非常简单的。只要在每次更深的递归时增加一个级别参数。然后,点数就是级别。谢谢@NullUserException,这是我到目前为止编写的public string Display(){StringBulder sb=new StringBulder();索引(node,1,sb);返回sb.toString();//索引遍历公共void索引(AVLNode node,int depth,StringBuilde sb){for(int i=1;i@RenatoGama,我已经写了上面的代码!@FrohaAlComputerya-欢迎来到stackoverflow。现在我们可以看到代码了;)您能否更新您的问题以描述a)结果出了什么问题,b)你在努力解决什么问题?谢谢你@ryanwilson。我按照你在上面代码中说的做了,所以你认为我的代码完全正确!非常感谢@Rushil我真的很感激。这解决了你的问题吗?我试着用你的代码看看会发生什么,谢谢你的家庭作业问题,这是pr可以解释什么是错误的,而不仅仅是发布代码。例如“教人钓鱼”;@Rushil在应用代码后,根55似乎有60作为右子,但事实上60是右左子,你能帮我修复它吗..谢谢你:)