java二叉树查找怎么写
时间: 2023-03-04 07:53:25 浏览: 83
java二叉树查找
二叉树查找是一种常见的数据结构算法,Java语言也提供了相应的实现方式。下面是一个简单的二叉树查找实现示例:
```java
class Node {
int value;
Node left, right;
Node(int item) {
value = item;
left = right = null;
}
}
public class BinaryTreeSearch {
Node root;
BinaryTreeSearch() {
root = null;
}
public void insert(int value) {
root = insertRecursive(root, value);
}
private Node insertRecursive(Node root, int value) {
if (root == null) {
root = new Node(value);
return root;
}
if (value < root.value) {
root.left = insertRecursive(root.left, value);
} else if (value > root.value) {
root.right = insertRecursive(root.right, value);
}
return root;
}
public Node search(int value) {
return searchRecursive(root, value);
}
private Node searchRecursive(Node root, int value) {
if (root == null || root.value == value) {
return root;
}
if (value < root.value) {
return searchRecursive(root.left, value);
} else {
return searchRecursive(root.right, value);
}
}
public static void main(String[] args) {
BinaryTreeSearch tree = new BinaryTreeSearch();
tree.insert(50);
tree.insert(30);
tree.insert(20);
tree.insert(40);
tree.insert(70);
tree.insert(60);
tree.insert(80);
Node foundNode = tree.search(60);
if (foundNode != null) {
System.out.println("Node found: " + foundNode.value);
} else {
System.out.println("Node not found.");
}
}
}
```
在这个示例中,`Node`类定义了二叉树节点的数据结构,包含一个值和左右子节点的引用。`BinaryTreeSearch`类则实现了二叉树的插入和查找方法。`insertRecursive`方法使用递归方式将节点插入到正确的位置,而`searchRecursive`方法也使用递归方式查找节点。在`main`方法中,示例展示了如何使用这些方法来创建一个二叉树并查找一个节点。
阅读全文