C출력 결과어려움 · 30점#재귀#트리#배열#함수

91. 배열 트리 재귀의 진입·반환 출력 순서

다음 C 프로그램의 실행 결과를 쓰시오. 배열 tree는 1번 칸을 루트로 하는 이진 트리이며, 값이 0인 칸은 노드가 없는 자리다.

1#include <stdio.h>
2
3int tree[8] = {0, 3, 6, 2, 0, 4, 5, 0};
4
5int visit(int i) {
6 if (i >= 8 || tree[i] == 0) return 0;
7 printf("%d ", tree[i]);
8 int l = visit(2 * i);
9 int r = visit(2 * i + 1);
10 printf("%d ", tree[i] * 10);
11 return tree[i] + (l > r ? l : r);
12}
13
14int main() {
15 printf("max=%d\n", visit(1));
16 return 0;
17}

해설을 먼저 보면 이후 정답 시 점수가 50%만 반영됩니다.