java二叉树代码怎么写

1949idc 2年前 (2024-09-18) 阅读数 282 #编程语言

在 Java 中,可以使用类来表示二叉树节点和二叉树。下面是一个简单的二叉树实现:

// 定义二叉树节点类
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 {
            insertRecursively(root, value);
        }
    }

    // 递归插入节点
    private void insertRecursively(TreeNode node, int value) {
        if (value< node.value) {
            if (node.left == null) {
                node.left = new TreeNode(value);
            } else {
                insertRecursively(node.left, value);
            }
        } else {
            if (node.right == null) {
                node.right = new TreeNode(value);
            } else {
                insertRecursively(node.right, value);
            }
        }
    }

    // 中序遍历二叉树
    public void inorderTraversal() {
        inorderTraversalRecursively(root);
        System.out.println();
    }

    // 递归中序遍历
    private void inorderTraversalRecursively(TreeNode node) {
        if (node != null) {
            inorderTraversalRecursively(node.left);
            System.out.print(node.value + " ");
            inorderTraversalRecursively(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("中序遍历结果:");
        tree.inorderTraversal();
    }
}

这个例子中,我们定义了一个 TreeNode 类来表示二叉树的节点,包含节点值、左子节点和右子节点。然后定义了一个 BinaryTree 类来表示二叉树,包含根节点和插入、中序遍历等操作方法。最后在 Main 类中进行测试,插入一些节点并进行中序遍历。

版权声明

本文内容由互联网用户自发贡献,该文观点仅代表作者本人
本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。

© 2010 首途云安 & 厦门硕顿信息技术有限公司 & 闽ICP备11016866号  增值电信业务经营许可证:B1-20203020 地址:福建厦门思明区嘉禾路297号1806
高新技术企业
软件产品证书
计算机软件著作权
ISO认证
国家3A企业