Java 中常用的树数据结构有二叉树、二叉搜索树、AVL树、红黑树等。针对树的查询操作,常见的有以下几种:

  1. 遍历:前序遍历、中序遍历、后序遍历、层序遍历等。遍历可以用递归或迭代实现,可以用于输出树的结构或查找特定节点。

  2. 查找:根据节点值或节点属性查找树中的节点。对于二叉搜索树,可以利用其有序性进行查找;对于其他树结构,可能需要遍历整个树才能找到目标节点。

  3. 插入:将一个新节点插入到树中,可能需要调整树的结构以满足特定的要求,如二叉搜索树的有序性。

  4. 删除:将一个节点从树中删除,可能需要调整树的结构以满足特定的要求,如二叉搜索树的有序性。

  5. 统计:统计树的节点数、深度、叶子节点数等特定属性。

下面是一个示例代码,实现了二叉搜索树的插入和查找操作:

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

class BST {
    TreeNode root;
    
    public void insert(int val) {
        root = insertNode(root, val);
    }
    
    private TreeNode insertNode(TreeNode node, int val) {
        if (node == null) {
            return new TreeNode(val);
        }
        if (val < node.val) {
            node.left = insertNode(node.left, val);
        } else if (val > node.val) {
            node.right = insertNode(node.right, val);
        }
        return node;
    }
    
    public boolean search(int val) {
        return searchNode(root, val) != null;
    }
    
    private TreeNode searchNode(TreeNode node, int val) {
        if (node == null || node.val == val) {
            return node;
        }
        if (val < node.val) {
            return searchNode(node.left, val);
        } else {
            return searchNode(node.right, val);
        }
    }
}

在上述代码中,insert方法和insertNode方法实现了二叉搜索树的插入操作,search方法和searchNode方法实现了二叉搜索树的查找操作。可以通过以下代码进行测试:

BST bst = new BST();
bst.insert(5);
bst.insert(3);
bst.insert(8);
bst.insert(1);
System.out.println(bst.search(3)); // true
System.out.println(bst.search(6)); // false
Java 树查询:详解常见树结构和操作

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

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