Page 177 - Do it! 자료구조와 함께 배우는 알고리즘(C 언어, 3쇄)
P. 177
4 스택에서 팝한 값 1을 n에 꺼내 놓습니다(그림 e ).
5 n 값 1을 출력합니다.
6 n 값을 2 줄여 –1로 만듭니다.
7 goto문이 실행되어 레이블 Top으로 돌아갑니다.
n 값이 –1이므로 다시 뒤쪽의 if문이 실행되고 그림 f 처럼 스택에서 2가 팝(출력)됩니다. 그
다음의 순서에 대한 설명은 생략하겠습니다. 그림을 자세히 보면서 공부하면 충분히 이해할
수 있습니다. n이 0 이하가 되어 스택이 텅 비면 두 if문 모두 실행되지 않고 종료됩니다.
recur(3); recur(2);
recur(2); recur(1); recur(1); recur(0);
recur(1); recur(0); recur(0); recur(-1); recur(0); recur(-1); -
recur(0); recur(-1); - - - - -
- - 1. n 값을 푸시하여 왼쪽 화살표를 따라 갑니다(n ← n - 1).
2. 돌아오면 팝한 ■ 안의 값을 출력합니다.
3.오른쪽 화살표를 따라 갑니다(n ← n - 2).
4를 푸시 3을 푸시 2를 푸시 1을 푸시 1을 팝 2를 팝 3을 팝
1
2 2 2
3 3 3 3 3
4 4 4 4 4 4 4
a c b d e f g
1을 푸시 1을 팝 4를 팝 2를 푸시 1을 푸시 1을 팝 2를 팝
1 1
4 4 2 2 2
h i j k l m n
[그림 5-7] 실습 5-5의 함수 실행에 따라 변화하는 스택의 모습
05•재귀 알고리즘 177