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
   172   173   174   175   176   177   178   179   180   181   182