[英]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.