簡體   English   中英

如何在Java中實現樹格式?

[英]How to implement a tree format in Java?

我在將代碼的這一部分寫成樹形格式時遇到麻煩。 我希望它輸出為

   x
 x   x
x     x

但它輸出為

 x
 x
 x
 ....

如何在代碼中添加縮進和空格? 如果節點為空,請輸入星號或任何符號?

public void insert(int value)
{
    Node n = new Node(value);
    if(root == null)
    root = n;
    else
    {
    Node parent = root;
    while(parent != null)
    {
        if(value < parent.data)
        {
            if(parent.left == null)
            {
               parent.left = n;
               return;
            }
            else
            {
                parent = parent.left;
            }
        }
            else
            {
                if(parent.right == null)
            {
                parent.right = n;
                return;
            }
            else
            {
                parent = parent.right;
            }
            }
        }
    }
}
   private void inOrder(Node n)
   {
    if(n == null)
    return;

   inOrder(n.left);
   System.out.println(n.data + " ");
   inOrder(n.right);
}

public void printInorder()
{
    inOrder(root);
}

請選中此命令以漂亮的方式打印二叉樹 (或)您也可以檢查此鏈接https://www.geeksforgeeks.org/print-binary-tree-2-dimensions ,其中該鏈接從左到右打印樹順序而不是從上到下,等效的Java代碼如下所示,其中將根值傳遞為Tree的根節點,並將空間傳遞為0。

void print2DUtil(Node root, int space) 
{ 
    // Base case 
    if (root == NULL) 
        return; 

    // Increase distance between levels 
    space += COUNT; 

    // Process right child first 
    print2DUtil(root.right, space); 

    // Print current node after space 
    // count 
    printf("\n"); 
    for (int i = COUNT; i < space; i++) 
        printf(" "); 
    printf("%d\n", root.data); 

    // Process left child 
    print2DUtil(root.left, space); 
} 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM