Java 树查询实现指南:从节点类到二叉搜索树
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
需要注意的是,上面的代码实现的是二叉搜索树的查询,如果需要实现其他类型的树,例如多叉树或平衡树,需要对节点类和树类进行相应的修改。
原文地址: https://www.cveoy.top/t/topic/mskP 著作权归作者所有。请勿转载和采集!