// 定义一个简单的二叉树节点类
class TreeNode {
int value;
TreeNode left;
TreeNode right;
public TreeNode(int value) {
this.value = value;
this.left = null;
this.right = null;
}
}
// 定义一个二叉树类,包含一些基本操作
class BinaryTree {
private TreeNode root;
public BinaryTree() {
root = null;
}
// 插入节点的方法
public void insert(int value) {
if (root == null) {
root = new TreeNode(value);
} else {
insertRecursive(root, value);
}
}
// 递归插入节点
private void insertRecursive(TreeNode currentNode, int value) {
if (value < currentNode.value) {
if (currentNode.left == null) {
currentNode.left = new TreeNode(value);
} else {
insertRecursive(currentNode.left, value);
}
} else {
if (currentNode.right == null) {
currentNode.right = new TreeNode(value);
} else {
insertRecursive(currentNode.right, value);
}
}
}
// 中序遍历方法(左-根-右)
public void inorderTraversal() {
inorderRecursive(root);
}
// 递归中序遍历
private void inorderRecursive(TreeNode node) {
if (node != null) {
inorderRecursive(node.left);
System.out.print(node.value + " ");
inorderRecursive(node.right);
}
}
}
// 测试代码
public class Main {
public static void main(String[] args) {
BinaryTree tree = new BinaryTree();
tree.insert(5);
tree.insert(3);
tree.insert(7);
tree.insert(2);
tree.insert(4);
tree.insert(6);
tree.insert(8);
System.out.println("Inorder traversal:");
tree.inorderTraversal(); // 输出: 2 3 4 5 6 7 8
}
}
value
和两个指向左右子节点的引用 left
和 right
。insert
方法用于将新节点插入到正确的位置,inorderTraversal
方法用于按中序遍历顺序输出节点值。希望这段代码能帮助你理解如何在 Java 中实现一个简单的二叉树。
上一篇:运行java程序的命令是什么
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站