用java编写一个二叉树
时间: 2023-03-02 11:10:14 浏览: 57
下面是一个简单的 Java 代码来实现二叉树:
```
class Node {
int value;
Node left;
Node right;
Node(int value) {
this.value = value;
right = null;
left = null;
}
}
class BinaryTree {
Node root;
BinaryTree() {
root = null;
}
void insert(int value) {
root = insertRec(root, value);
}
Node insertRec(Node current, int value) {
if (current == null) {
current = new Node(value);
return current;
}
if (value < current.value)
current.left = insertRec(current.left, value);
else if (value > current.value)
current.right = insertRec(current.right, value);
return current;
}
void inorder() {
inorderRec(root);
}
void inorderRec(Node current) {
if (current != null) {
inorderRec(current.left);
System.out.print(current.value + " ");
inorderRec(current.right);
}
}
}
public class Main {
public static void main(String[] args) {
BinaryTree tree = new BinaryTree();
tree.insert(50);
tree.insert(30);
tree.insert(20);
tree.insert(40);
tree.insert(70);
tree.insert(60);
tree.insert(80);
tree.inorder();
}
}
```
这段代码实现了二叉树的基本操作,包括插入节点(insert)和中序遍历(inorder)。
插入操作是通过递归实现的,如果当前节点为空,则返回新创建的节点;如果不为空,则比较节点的值和要插入的值,如果要插入的值比当前节点的值小,则插入左子树,否则插入右子树。
中序遍历是通过递归实现的,先遍历左子树,再访问当前节点,最后遍历右子树。