void addToBST(int k) : BST에 k를 추가하는 함수
void delFromBST(int k) : BST로부터 k를 찾아서, 있으면 제거하는 함수. 양쪽 자식을 가진 노드 삭제의 경우 대체자는 오른쪽에서 올라온다.
int findLeft(int k) : BST에서 k를 저장한 노드를 찾아서, 그 노드의 왼쪽 자식에 담긴 값을 반환하는 함수
만약, k를 담은 노드가 없거나, 왼쪽 자식이 없으면 -999를 반환0
int findRight(int k) : BST에서 k를 저장한 노드를 찾아서, 그 노드의 오른쪽 자식에 담긴 값을 반환하는 함수
만약, k를 담은 노드가 없거나, 오른쪽 자식이 없으면 -999를 반환
위 4개 함수를 구현하여, 아래 main함수와 함께 동작시키시오.
헤더 파일 (header) 포함, 전역변수들과 구조체 선언은 자유롭게 할 수 있음.
다만, 아래 main함수를 수정해서는 안된다. 수정하여 통과하는 경우, 부정행위 처리됨.
int main(void) {
int k;
while (1) {
scanf("%d", &k);
if (k == -1) {
break;
}
addToBST(k);
}
while (1) {
scanf("%d", &k);
if (k == -1) {
break;
}
delFromBST(k);
}
scanf("%d", &k);
printf("%d %d", findLeft(k), findRight(k+1));
return 0;
}