如何在java中打印二叉搜索树?我已经编写了插入树的代码,但无法打印树,我确定元素是否正在添加。我将在下面发布我的代码。
public class TreeNode {
TreeNode left;
TreeNode right;
TreeNode root;
int data;
public TreeNode(int d) {
data = d;
left = right = null;
root = null;
}
public synchronized void insert(int d) {
if (root == null){
root = new TreeNode( d );
}
if (d < data) {
if (left == null) {
left = new TreeNode(d);
} else {
left.insert(d);
}
} else if (d > data) {
if (right == null) {
right = new TreeNode(d);
} else {
right.insert(d);
}
}
}
public TreeNode treeSearch(TreeNode root, int target) {
if (root != null) {
if (target < root.data) {
root = treeSearch(root.left, target);
} else if (target > root.data) {
root = treeSearch(root.right, target);
}
}
return root;
}
}
最佳答案
您可以使用以下方法:
void printTree(TreeNode node, String prefix)
{
if(node == null) return;
System.out.println(prefix + " + " + node.data);
printTree(node.left , prefix + " ");
printTree(node.right , prefix + " ");
}
初始调用应该是 printTree( root,"");
从您要打印树的位置开始。这里root
是根节点的引用。
更新:
您可以看到此代码正在运行 here
关于java - 打印 Java 二叉搜索树,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47510048/