Laravel  
laravel
文档
数据库
架构
入门
php技术
    
Laravelphp
laravel / php / java / vue / mysql / linux / python / javascript / html / css / c++ / c#

java tree

作者:掌心余温   发布日期:2025-05-09   浏览:29

// 定义一个简单的二叉树节点类
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
    }
}

解释说明:

  1. TreeNode 类:定义了二叉树的节点结构,每个节点包含一个整数值 value 和两个指向左右子节点的引用 leftright
  2. BinaryTree 类:实现了二叉树的基本操作,包括插入节点和中序遍历。insert 方法用于将新节点插入到正确的位置,inorderTraversal 方法用于按中序遍历顺序输出节点值。
  3. Main 类:测试代码部分,创建了一个二叉树并插入了一些节点,最后调用中序遍历来验证插入结果。

希望这段代码能帮助你理解如何在 Java 中实现一个简单的二叉树。

上一篇:运行java程序的命令是什么

下一篇:import java.util.*用于什么情况

大家都在看

java连接数据库的代码

ubuntu 卸载java

java sort用法

java collections.sort

java file类的方法

java 判断

java时间数据类型

java 时间加一天

java demo

java 截取

Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3

Laravel 中文站