티스토리 뷰
재귀 함수의 기본적인 이해
책에서는 재귀에 대해 이런 사진을 통해 설명하고 있다.
재귀 함수 호출시 복사본을 만들어져서 복사본이 실행되는 구조로 재귀함수의 호출을 설명한다.
재귀를 통해 팩토리얼 함수를 구현.
int Factorial(int n)
{
if (n == 0)
return 1;
else
return n * Factorial(n - 1);
}
int main(void)
{
printf("2! = %d", Factorial(2));
return 0;
}
하노이 타워의 구현.
void MoveHanoi(int num, char from, char by, char to)
{
if (num == 1)
printf("1번 원반을 %c에서 %c로 이동하였습니다.\n", from, to);
else {
MoveHanoi(num - 1, from, to, by);
printf("%d번 원반이 %c에서 %c로 이동하였습니다.\n", num, from, to);
MoveHanoi(num - 1, by, from, to);
}
}
1. 작은 원반 n - 1개를 A에서 B로 이동
2. 큰 원반 1개를 A에서 C로 이동
3. 작은 원반 n - 1개를 B에서 C로 이동
'책 > 윤성우의 열혈 자료구조(C)' 카테고리의 다른 글
배열 기반 연결 리스트의 ADT 구현 (0) | 2019.12.16 |
---|
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 간접 지정
- 프로그래밍
- 비트필드
- 공용체
- 자료구조
- 알고리즘
- 1차원 배열
- call by value
- 배열
- Algorithm
- 회전리스트
- call by reference
- 파이썬
- 공부
- inflearn
- 다차원 배열
- 시간복잡도
- C
- 종류
- timecomplexity
- 구조체
- 직접 지정
- 강의
- 2차원 배열
- 공간복잡도
- 형승격
- 재귀함수
- 포인터
- codeit
- 3차원 배열
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
글 보관함