举个java二叉树例子代码加注释
时间: 2023-07-09 18:04:58 浏览: 100
二叉树实例
好的,下面是一个简单的二叉树的 Java 代码例子,注释在代码中:
```java
// 定义二叉树节点类
class TreeNode {
int val; // 节点的值
TreeNode left; // 左子树节点
TreeNode right; // 右子树节点
// 构造函数
TreeNode(int x) {
val = x;
}
}
// 定义二叉树类
class BinaryTree {
private TreeNode root; // 根节点
// 插入节点
public void insert(int val) {
root = insert(root, val);
}
// 递归插入节点
private TreeNode insert(TreeNode node, int val) {
if (node == null) { // 如果节点为空,则新建一个节点
return new TreeNode(val);
}
// 如果插入的值比当前节点小,则插入左子树
if (val < node.val) {
node.left = insert(node.left, val);
}
// 如果插入的值比当前节点大,则插入右子树
else if (val > node.val) {
node.right = insert(node.right, val);
}
return node;
}
// 中序遍历
public void inorder() {
inorder(root);
}
// 递归中序遍历
private void inorder(TreeNode node) {
if (node == null) {
return;
}
inorder(node.left);
System.out.print(node.val + " ");
inorder(node.right);
}
}
// 示例代码
public class BinaryTreeExample {
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);
System.out.print("中序遍历结果:");
tree.inorder(); // 中序遍历结果:20 30 40 50 60 70 80
}
}
```
以上代码演示了一个简单的二叉树的定义、插入节点和中序遍历的实现。
阅读全文