我在将这部分代码写入树格式时遇到问题。我希望它输出为
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);
}
最佳答案
请检查此Print a binary tree in a pretty way (或者) 您也可以查看此链接 https://www.geeksforgeeks.org/print-binary-tree-2-dimensions其中它以从左到右的顺序而不是从上到下的顺序打印树,等效的 java 代码如下所示,其中将 root 值作为树的根节点传递,并将空间传递为 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);
}
关于java - 如何用Java实现树格式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53158402/