프로그래밍의 기초(의사 코드 트레이스)
다음 프로그램은 배열 next로 요소끼리 연결한 연결 리스트를, 인덱스 1인 요소부터 차례로 따라가며 출력한다. 배열의 인덱스는 1부터 시작한다. next의 값 0은 리스트의 끝을 나타낸다. 출력되는 값의 순서는?
string array: val ← {"A", "B", "C", "D", "E"}
integer array: next ← {3, 0, 5, 2, 4}
integer: p ← 1
while (p ≠ 0)
output val[p]
p ← next[p]
endwhile
- AA, B, C, D, E
- BC, E, D, B
- CA, C, E, D, B
정답과 해설 보기
정답: C. A, C, E, D, B
p = 1에서 val[1]의 A를 출력하고, p ← next[1]로 p = 3으로 진행합니다. 이어서 C를 출력하고 next[3] = 5, E를 출력하고 next[5] = 4, D를 출력하고 next[4] = 2, B를 출력하고 next[2] = 0이 되어 반복을 빠져나갑니다. 출력은 A, C, E, D, B입니다. 리스트의 순서는 배열의 나열 순서가 아니라 next의 값으로 정해집니다.