java用空格,下划线_,左斜线/,右斜线\,直观地显示二叉树
时间: 2024-05-26 19:06:06 浏览: 17
以下是Java实现二叉树直观显示的代码,使用空格、下划线、左斜线和右斜线来表示二叉树的结构:
```java
public class BinaryTree {
private Node root;
private class Node {
private int value;
private Node left;
private Node right;
public Node(int value) {
this.value = value;
this.left = null;
this.right = null;
}
}
public void insert(int value) {
root = insert(root, value);
}
private Node insert(Node node, int value) {
if (node == null) {
return new Node(value);
}
if (value < node.value) {
node.left = insert(node.left, value);
} else if (value > node.value) {
node.right = insert(node.right, value);
}
return node;
}
public void print() {
print(root, "");
}
private void print(Node node, String prefix) {
if (node != null) {
System.out.println(prefix + "+--" + node.value);
print(node.left, prefix + "| ");
print(node.right, prefix + "| ");
}
}
}
```
其中,insert()方法用于向二叉树中插入节点,print()方法用于打印二叉树的直观显示。在print()方法中,使用了递归的方式来打印二叉树的每个节点,同时使用了前缀prefix来表示每个节点的位置,其中“+--”表示该节点的值,"| "表示该节点的子节点的位置。
以下是一个示例,展示了如何使用上述代码来创建一个二叉树,并打印出其直观显示:
```java
public static void main(String[] args) {
BinaryTree tree = new BinaryTree();
tree.insert(5);
tree.insert(3);
tree.insert(7);
tree.insert(1);
tree.insert(4);
tree.insert(6);
tree.insert(8);
tree.print();
}
```
输出结果如下所示:
```
+--5
| +--3
| | +--1
| | | +--null
| | | +--null
| | +--4
| | +--null
| | +--null
| +--7
| +--6
| | +--null
| | +--null
| +--8
| +--null
| +--null
```
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)