二分搜索树插入节点
public class BST<Key extends Comparable<Key>, Value> {
private class Node {
private Key key;
private Value value;
private Node left, right;
public Node(Key key, Value value) {
this.key = key;
this.value = value;
}
}
private Node root;
private int count;
public BST() {
root = null;
count = 0;
}
public int size() {
return count;
}
public boolean isEmpty() {
return count == 0;
}
public void insert(Key key, Value value) {
root = insert(root, key, value);
}
private Node insert(Node node, Key key, Value value) {
if (node == null) {
count++;
return new Node(key, value);
}
if (node.key.compareTo(key) == 0) {
node.value = value;
} else if (node.key.compareTo(key) > 0) {
node.left = insert(node.left, key, value);
} else if (node.key.compareTo(key) < 0) {
node.right = insert(node.right, key, value);
}
return node;
}
}