我创建了一个二叉搜索树,如下所示:
static class TreeNode{
private int data;
private TreeNode leftChild;
private TreeNode rightChild;
public TreeNode(int data){
this.data=data;
}
public void add(int data){
if( data >= this.data){
if(this.rightChild == null){
this.rightChild = new TreeNode(data);
}else{
this.rightChild.add(data);
}
}else {
if(this.leftChild == null){
this.leftChild = new TreeNode(data);
}else {
this.leftChild.add(data);
}
}
}
public int getData(){
return data;
}
public void setLeftChild(TreeNode leftChild){
this.leftChild = leftChild;
}
public void setRightChild(TreeNode rightChild){
this.rightChild = rightChild;
}
public TreeNode getLeftChild(){
return leftChild;
}
public TreeNode getRightChild(){
return rightChild;
}
public void print() {
print("", this, false);
}
public void print(String prefix, TreeNode n, boolean isLeft) {
if (n != null) {
System.out.println (prefix + (isLeft ? "|-- " : "\\-- ") + n.data);
print(prefix + (isLeft ? "| " : " "), n.leftChild, true);
print(prefix + (isLeft ? "| " : " "), n.rightChild, false);
}
}
}
static class BinaryTree{
private TreeNode root;
public void pprint(){
traversePreOrder(this.root);
}
public void traversePreOrder(TreeNode node) {
if (node != null) {
System.out.print(" " + node.data);
traversePreOrder(node.leftChild);
traversePreOrder(node.rightChild);
}
}
}
我想显示我的树,但不是正常显示,而是从最低点开始旋转 90 度。
例如:如果输入是:901 292 247 997 457 468 216 82 530 524 793 952 730 764 820 460 424
输出应如下所示:

另一个例子:如果输入是:302 946 638 376 604 610 45 547 76 347 694 495 51 130 159
输出:

PS我尝试了如何在Java中打印二叉树图中的信息,但我无法解决问题:(