모두CBT

다음 이진 트리의 전체 노드 수를 계산하는 C 코드에서 (가)에 들어갈… | [7급 국가직 자료구조론] 24년 1회차 기출문제 상세 페이지

1[7급 국가직 자료구조론] 24년 1회차
다음 이진 트리의 전체 노드 수를 계산하는 C 코드에서 (가)에 들어갈 내용은? (단, n은 최초에 이진 트리 내 루트 노드를 가리키는 포인터 변수이며, TNode는 이진 트리의 노드 구조를 나타낸다)
typedef struct TreeNode {
char data;
struct TreeNode *left;
struct TreeNode *right;
}TNode;

int count_node(TNode *n) {
if(n==NULL) return 0;
return ( (가) ) +count_node(n->right);
}
1
1
2
n->data
3
count_node(n->left)
4
1+count_node(n->left)
해설

(가)에는 1+count_node(n->left)가 들어간다.

전체 노드 수 = 현재 노드 1개 + 왼쪽 서브트리 노드 수 + 오른쪽 서브트리 노드 수라는 재귀 정의를 그대로 옮긴 것이다. 빈 트리(NULL)는 0을 반환해 재귀가 끝난다.

  • 1만 두면 왼쪽 서브트리를 세지 않아 루트에서 오른쪽으로 이어진 노드만 센다.
  • n->data는 노드에 저장된 문자의 코드값을 더하므로 개수가 아니다.
  • count_node(n->left)만 두면 자기 자신을 세지 않아 모든 호출이 결국 0을 반환한다.

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

이어서 풀어보기

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