安卓可以搜索的树状结构代码
时间: 2024-03-15 11:44:06 浏览: 8
以下是一个简单的二叉搜索树的实现,包括查找、插入和删除操作:
```java
public class BinarySearchTree {
private Node root;
private class Node {
private int key;
private Node left, right;
public Node(int key) {
this.key = key;
}
}
public boolean contains(int key) {
return contains(root, key);
}
private boolean contains(Node node, int key) {
if (node == null) {
return false;
}
if (key == node.key) {
return true;
} else if (key < node.key) {
return contains(node.left, key);
} else {
return contains(node.right, key);
}
}
public void insert(int key) {
root = insert(root, key);
}
private Node insert(Node node, int key) {
if (node == null) {
return new Node(key);
}
if (key < node.key) {
node.left = insert(node.left, key);
} else if (key > node.key) {
node.right = insert(node.right, key);
}
return node;
}
public void delete(int key) {
root = delete(root, key);
}
private Node delete(Node node, int key) {
if (node == null) {
return null;
}
if (key < node.key) {
node.left = delete(node.left, key);
} else if (key > node.key) {
node.right = delete(node.right, key);
} else {
if (node.left == null) {
return node.right;
} else if (node.right == null) {
return node.left;
} else {
Node minNode = findMin(node.right);
node.key = minNode.key;
node.right = delete(node.right, minNode.key);
}
}
return node;
}
private Node findMin(Node node) {
while (node.left != null) {
node = node.left;
}
return node;
}
}
```
以上是二叉搜索树的实现,也可以使用其他树状结构,例如平衡二叉树(AVL树)、红黑树等。