Java中树状结构可以通过使用节点类来实现。每个节点都有一个值和对其的子节点的引用。以下是一个示例节点类:

class TreeNode {
    int val;
    TreeNode left;
    TreeNode right;

    public TreeNode(int val) {
        this.val = val;
        this.left = null;
        this.right = null;
    }
}

这个节点类包含一个整数值和两个子节点引用,左子节点和右子节点。左子节点存储比当前节点小的值,右子节点存储比当前节点大的值。

使用这个节点类,可以构建树状结构。以下是一个示例:

TreeNode root = new TreeNode(5);
root.left = new TreeNode(3);
root.right = new TreeNode(7);
root.left.left = new TreeNode(1);
root.left.right = new TreeNode(4);
root.right.left = new TreeNode(6);
root.right.right = new TreeNode(8);

这个树状结构包含七个节点,根节点是5,左子树包含3个节点,右子树包含3个节点。

可以通过遍历这个树状结构来访问每个节点。以下是深度优先遍历的示例代码:

public void dfs(TreeNode node) {
    if (node == null) {
        return;
    }
    System.out.print(node.val + " ");
    dfs(node.left);
    dfs(node.right);
}

这个代码将从根节点开始,先输出根节点的值,然后递归地遍历左子树和右子树。输出结果为:5 3 1 4 7 6 8。

还可以使用广度优先遍历来遍历树状结构。以下是一个示例代码:

public void bfs(TreeNode root) {
    Queue<TreeNode> queue = new LinkedList<>();
    queue.add(root);
    while (!queue.isEmpty()) {
        TreeNode node = queue.poll();
        System.out.print(node.val + " ");
        if (node.left != null) {
            queue.add(node.left);
        }
        if (node.right != null) {
            queue.add(node.right);
        }
    }
}

这个代码将从根节点开始,先输出根节点的值,然后遍历每个节点的左子节点和右子节点,将它们加入队列中。然后从队列中取出队首节点,输出它的值,继续遍历它的子节点。输出结果为:5 3 7 1 4 6 8

java树状结构

原文地址: https://www.cveoy.top/t/topic/eQaV 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录