문제 번호 1898. -- 데이터구조 2025-1 Binary search tree

1898: 데이터구조 2025-1 Binary search tree

시간 제한: 1 Sec  메모리 제한: 128 MB
제출: 19  해결 문제 수: 6
[제출][채점 상황 열람][게시판]

문제 설명

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;
}


입력

10 5 15 3 7 12 17 -1

5 15 -1

10

출력

7 -999

입력 예시

10 5 15 3 7 12 17 -1
5 15 -1
10

출력 예시

7 -999

도움말

출처

[제출][채점 상황 열람]