Java 实现树查询需要先定义一个树的数据结构,通常是使用节点类和树类来实现。节点类表示树的一个节点,包括节点值和左右子节点的指针,树类则包括根节点和一些树操作的方法。

以下是一个简单的树节点类:

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

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

    public int getVal() {
        return val;
    }

    public void setVal(int val) {
        this.val = val;
    }

    public TreeNode getLeft() {
        return left;
    }

    public void setLeft(TreeNode left) {
        this.left = left;
    }

    public TreeNode getRight() {
        return right;
    }

    public void setRight(TreeNode right) {
        this.right = right;
    }
}

然后可以定义一个树类,包含根节点和一些查询操作的方法。以下是一个简单的二叉搜索树类:

public class BinarySearchTree {
    private TreeNode root;

    public BinarySearchTree() {
        this.root = null;
    }

    public TreeNode getRoot() {
        return root;
    }

    public void insert(int val) {
        root = insert(root, val);
    }

    private TreeNode insert(TreeNode node, int val) {
        if (node == null) {
            return new TreeNode(val);
        }
        if (val < node.getVal()) {
            node.setLeft(insert(node.getLeft(), val));
        } else if (val > node.getVal()) {
            node.setRight(insert(node.getRight(), val));
        }
        return node;
    }

    public boolean search(int val) {
        return search(root, val);
    }

    private boolean search(TreeNode node, int val) {
        if (node == null) {
            return false;
        }
        if (node.getVal() == val) {
            return true;
        } else if (val < node.getVal()) {
            return search(node.getLeft(), val);
        } else {
            return search(node.getRight(), val);
        }
    }
}

上面的代码实现了二叉搜索树的插入和查找操作,使用方式如下:

BinarySearchTree bst = new BinarySearchTree();
bst.insert(5);
bst.insert(3);
bst.insert(7);
System.out.println(bst.search(3)); // true
System.out.println(bst.search(6)); // false

需要注意的是,上面的代码实现的是二叉搜索树的查询,如果需要实现其他类型的树,例如多叉树或平衡树,需要对节点类和树类进行相应的修改。

Java 树查询实现指南:从节点类到二叉搜索树

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

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