[7급 국가직 자료구조론 2024년 17번]

다음 C 코드에서 heapify(a, 7)을 수행한 후 배열 a[]의 내용은? (단, 모든 배열 원소값은 양의 정수로 한정하고, -1은 연산 대상이 아니며, 0은 삭제된 값을 나타낸다)
int a[8] = {-1, 1, 2, 3, 6, 4, 7, 5};

int heapify(int *a, int n) {
	int item = a[1], temp = a[n];
	int i = 1, j = 2;

	a[n] = 0,  n = n-1; 
	while ( j <= n ) {
		if ( j < n && a[j] > a[j + 1] ) j++;
		if ( temp < a[j] ) break;
		else {
			a[i] = a[j];
			i = j;
			j = j*2;
		}
	}
	a[i] = temp;
	return item;
}
자료구조론
  1. ①
    0
    1
    2
    3
    4
    5
    6
    7
    -1
    2
    3
    4
    6
    5
    7
    0
  2. ②
    0
    1
    2
    3
    4
    5
    6
    7
    -1
    2
    4
    3
    6
    5
    7
    0
  3. ③
    0
    1
    2
    3
    4
    5
    6
    7
    -1
    2
    3
    4
    5
    6
    7
    0
  4. ④
    0
    1
    2
    3
    4
    5
    6
    7
    -1
    2
    4
    3
    5
    6
    7
    0

선지를 골라 바로 채점해 보세요.

정답 ②

출처: 인사혁신처 공개 기출(공공데이터포털, 이용허락 제한 없음)

신고가 접수됐습니다. 감사합니다.

오류 신고