- Operation
1. BST.insert(key)
: 새로운 키 삽입
2. BST.search(target) -> node
: target을 키로 가지는 노드를 찾아 반환
3. BST.delete(target)
: target을 키로 가지는 노드를 삭제
4. BST.min(node) -> node
: 매개변수 node를 루트로 하는 이진 탐색 트리에서 가장 작은 key를 가진 노드를 반환
5. BST.max(node) -> node
: 매개변수 node를 루트로 하는 이진 탐색 트리에서 가장 큰 key를 가진 노드를 반환
6. BST.prev(cur) -> node
: 정렬된 상태에서 cur 노드의 바로 이전 노드를 찾아 반환
7. BST.next(cur) -> node
: 정렬된 상태에서 cur 노드의 바로 다음 노드를 찾아 반환
이제 ADT가 있으니 구현해 보죠.