要使用Java遞歸查詢樹形結構,首先需要定義樹的節點類,包含節點的值和子節點列表。然后,編寫遞歸查詢的方法。
以下是一個示例代碼:
class TreeNode {
int value;
List<TreeNode> children;
public TreeNode(int value) {
this.value = value;
this.children = new ArrayList<>();
}
}
class Tree {
TreeNode root;
public Tree(TreeNode root) {
this.root = root;
}
// 遞歸查詢樹中是否包含指定值的節點
public boolean containsValue(TreeNode node, int value) {
if (node.value == value) {
return true;
}
for (TreeNode child : node.children) {
if (containsValue(child, value)) {
return true;
}
}
return false;
}
}
public class Main {
public static void main(String[] args) {
TreeNode node1 = new TreeNode(1);
TreeNode node2 = new TreeNode(2);
TreeNode node3 = new TreeNode(3);
TreeNode node4 = new TreeNode(4);
TreeNode node5 = new TreeNode(5);
node1.children.add(node2);
node1.children.add(node3);
node2.children.add(node4);
node3.children.add(node5);
Tree tree = new Tree(node1);
System.out.println(tree.containsValue(tree.root, 3)); // 輸出:true
System.out.println(tree.containsValue(tree.root, 6)); // 輸出:false
}
}
在上面的示例中,首先定義了一個TreeNode
類,表示樹的節點。Tree
類表示整個樹結構,并包含了一個遞歸查詢方法containsValue
,用于在樹中查找是否包含指定值的節點。
在main
方法中,創建了一個包含多個節點的樹,并進行了查詢操作。輸出結果為true
表示樹中包含指定值的節點,輸出結果為false
表示樹中不包含指定值的節點。