모두CBT

다음 tree_height() 함수는 이진 트리의 루트 노드를 매개변수… | [7급 국가직 자료구조론] 22년 1회차 기출문제 상세 페이지

1[7급 국가직 자료구조론] 22년 1회차
다음 tree_height() 함수는 이진 트리의 루트 노드를 매개변수로 받아 트리의 높이를 반환한다. (가)~(다)에 들어갈 내용을 바르게 연결한 것은?
typedef struct node {
int value;
struct node *left;
struct node *right;
} node;

int tree_height (node *ptr) {
int left_h, right_h;
if (ptr == NULL)
return 0;
else {
left_h = tree_height(ptr->left);
right_h = tree_height(ptr->right);
if ( [ (가) ] )
return [ (나) ] ;
else
return [ (다) ] ;
}
}
(가)  (나)  (다)
1
left_h > right_h  left_h  right_h
2
left_h > right_h  left_h + 1  right_h + 1
3
left_h < right_h  left_h  right_h
4
left_h < right_h  left_h + 1  right_h + 1
해설

(가) left_h > right_h, (나) left_h + 1, (다) right_h + 1이다.

트리 높이는 두 서브트리 높이 중 큰 값에 현재 노드 1을 더한 것이다. 왼쪽이 더 크면 left_h + 1, 아니면 right_h + 1을 반환한다.

  • left_h > right_h, left_h, right_h: 현재 노드를 더하지 않아 어떤 트리든 높이가 0이 된다.
  • left_h < right_h, left_h, right_h: 작은 쪽을 고르고 1도 더하지 않는다.
  • left_h < right_h, left_h + 1, right_h + 1: 조건이 뒤집혀 더 낮은 서브트리 기준으로 높이를 반환한다.

오류나 개정된 내용이 보이면 알려주세요

이어서 풀어보기

[7급 국가직 자료구조론] 22년 1회차 25문항 이어서 보기문제·정답·해설을 한 페이지에서 이어서 볼 수 있어요7급 국가직 자료구조론 기출문제 암기장 전체 보기