언어 자료구조 알고리즘/C언어 예제

재귀함수 형상화

언제나휴일 2009. 8. 19. 05:47
반응형

//아래의 코드를 main함수에서 호출하는 부분을 박스로 타고 들어가는 모습을 형상화해 보았습니다.

//유심히 보시고 재귀함수의 원리를 이해하는데 도움이 되었으면 합니다.

 

#include <stdio.h>
void move(int from, int to)
{
   printf("%d  %d\n", from, to);
}

void A(int n, int from, int by, int to)
{
   if(n==1)
    move(from, to);// move1
   else
   {
    A(n-1, from, to, by);          // A1
    move(from, to); // move2
    A(n-1, by, from, to);           // A2
    }
}

void main()
{
 A(3,1,2,3);
}

//형상화 부분

void main()

{

    A(3,1,2,3);   

int n = 3, int from = 1, int by =2, int to=3

A(2,1,3,2);

int n = 2, int from=1,int by = 3,int to = 2

A(1,1,2,3);

int n=1,int from =1, int by = 2,int to = 3

move(1,3);              1   3  출력됨

move(1,2);              1   2  출력됨

A(1,3,1,2);

int n=1,int from=3,int by=2,int to =2

move(3,2);              3   2  출력됨

move(1,3);              1   3  출력됨

A(2,2,1,3);

int n = 2, int from = 2, int by = 1, int to = 3

A(1,2,3,1);              2  3  출력됨

int n=1, int from=2, int by = 3, int to = 1;

move(2,1);              2   1 출력됨

move(2,3);              2   3  출력됨

A(1,1,2,3);

int n=1, int from=1, int by = 2, int to = 3;

move(1,3);              1   3  출력됨

 

}

반응형