반응형
하노이탑 코드
비록 짧은 코드이지만 재귀함수를 이해하는데 도움이 많이 되는 것 같습니다.
저는 처음봤을때 머리로 한번에 이해가 되지않아서 한단계씩실행하여 과정을 천천히 이해했습니다.
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
void Hanoi(int num, char from, char by, char to) {
if (num == 1)
printf("원반1을 %c에서 %c로 이동\n", from, to);
else {
Hanoi(num - 1, from, to, by);
printf("원반%d를 %c에서 %c로 이동 \n", num, from, to);
Hanoi(num - 1, by, from, to);
}
}
int main()
{
Hanoi(3, 'A', 'B', 'C');
return 0;
}
Hanoi(num - 1, from, to, by); 은 제일 아래에 있는 원판을 제외한 나머지 원판을 A에서 B로 이동하기 위한 과정이며,
Hanoi(num - 1, by, from, to); 은 제일 아래에 있는 원판을 제외한 나머지 원판을 B에서 C로 이동하기 위한 과정입니다.
참고: 윤성우의 열혈자료구조
반응형
'Programming > Data Structure and Algorithm' 카테고리의 다른 글
윤성우의 열혈자료구조 문제 04 - 1연결리스트 익숙해지기 (0) | 2021.12.25 |
---|---|
자료구조 리스트(List) 기초 개념정리 (0) | 2021.12.25 |
윤성우의 열혈자료구조 문제 03-1 (0) | 2021.12.25 |
자료구조 기초 개념 (Data Structure) (빅오표기법) (0) | 2021.12.19 |
(자료구조) 이진탐색 예제 (윤성우의 열혈 자료구조) (0) | 2021.08.08 |