Java 树查询:详解常见树结构和操作
Java 中常用的树数据结构有二叉树、二叉搜索树、AVL树、红黑树等。针对树的查询操作,常见的有以下几种:
-
遍历:前序遍历、中序遍历、后序遍历、层序遍历等。遍历可以用递归或迭代实现,可以用于输出树的结构或查找特定节点。
-
查找:根据节点值或节点属性查找树中的节点。对于二叉搜索树,可以利用其有序性进行查找;对于其他树结构,可能需要遍历整个树才能找到目标节点。
-
插入:将一个新节点插入到树中,可能需要调整树的结构以满足特定的要求,如二叉搜索树的有序性。
-
删除:将一个节点从树中删除,可能需要调整树的结构以满足特定的要求,如二叉搜索树的有序性。
-
统计:统计树的节点数、深度、叶子节点数等特定属性。
下面是一个示例代码,实现了二叉搜索树的插入和查找操作:
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
原文地址: https://www.cveoy.top/t/topic/mskR 著作权归作者所有。请勿转载和采集!