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

java 二叉树

作者:此甥孓狠善良   发布日期:2026-05-08   浏览:87

// 定义二叉树节点类
class TreeNode {
    int val; // 节点的值
    TreeNode left; // 左子节点
    TreeNode right; // 右子节点

    // 构造函数
    TreeNode(int x) {
        val = x;
        left = null;
        right = null;
    }
}

// 定义二叉树类
class BinaryTree {
    TreeNode root; // 树的根节点

    // 构造函数
    BinaryTree() {
        root = null;
    }

    // 插入节点的方法(递归实现)
    public void insert(int value) {
        root = insertRec(root, value);
    }

    // 递归插入节点
    private TreeNode insertRec(TreeNode root, int value) {
        if (root == null) {
            root = new TreeNode(value);
            return root;
        }

        if (value < root.val) {
            root.left = insertRec(root.left, value);
        } else if (value > root.val) {
            root.right = insertRec(root.right, value);
        }

        return root;
    }

    // 中序遍历方法(递归实现)
    public void inorderTraversal() {
        inorderRec(root);
    }

    // 递归中序遍历
    private void inorderRec(TreeNode root) {
        if (root != null) {
            inorderRec(root.left);
            System.out.print(root.val + " ");
            inorderRec(root.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);

        // 打印中序遍历结果
        System.out.println("Inorder traversal of the constructed tree is:");
        tree.inorderTraversal();
    }
}

解释说明:

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

这个例子展示了如何构建和操作一个简单的二叉搜索树(BST)。

上一篇:java 两个集合取交集

下一篇:java获取yml文件配置

大家都在看

java url decode

java判断是windows还是linux

java连接数据库的代码

java date类型比较大小

java djl

ubuntu 卸载java

es java api

java list 查找

java 解压rar

jsonobject.tojavaobje

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

Laravel 中文站