728x90
728x170
윤성우의 열혈 자료구조는 자료구조에 대한 기본을 배울 수 있는 개론서입니다. 다양한 그림을 사용하여 자료구조를 친절하게 설명하였으며 독자들에게 예제 코드를 제공하기 때문에 학습하기 용이합니다. 더불어 학습의 완성도를 높이는 다양한 문제와 그 답안을 제공하여 자료구조를 완벽히 익히는 데 도움이 되는 자료구조 개론서입니다.
#include <stdio.h>
int Fibo(int n)
{
printf("func call param %d \n", n);
if(n==1)
return 0;
else if(n==2)
return 1;
else
return Fibo(n-1)+Fibo(n-2);
}
int main(void)
{
Fibo(7);
return 0;
}
#include <stdio.h>
int Fibo(int n)
{
if(n==1)
return 0;
else if(n==2)
return 1;
else
return Fibo(n-1)+Fibo(n-2);
}
int main(void)
{
int i;
for(i=1; i<15; i++)
printf("%d ", Fibo(i));
return 0;
}
#include <stdio.h>
void HanoiTowerMove(int num, char from, char by, char to)
{
if(num==1) // 이동할 원반의 수가 1개라면
{
printf("원반1을 %c에서 %c로 이동 \n", from, to);
}
else
{
HanoiTowerMove(num-1, from, to, by); // 3단계 중 1단계
printf("원반%d을(를) %c에서 %c로 이동 \n", num, from, to); // 3단계 중 2단계
HanoiTowerMove(num-1, by, from, to); // 3단계 중 3단계
}
}
int main(void)
{
// 막대A의 원반 3개를 막대B를 경유하여 막대C로 옮기기
HanoiTowerMove(3, 'A', 'B', 'C');
return 0;
}
#include <stdio.h>
int BSearchRecur(int ar[], int first, int last, int target)
{
int mid;
if(first > last)
return -1; // -1의 반환은 탐색의 실패를 의미
mid = (first+last) / 2; // 탐색대상의 중앙을 찾는다.
if(ar[mid] == target)
return mid; // 검색된 타겟의 인덱스 값 반환
else if(target < ar[mid])
return BSearchRecur(ar, first, mid-1, target);
else
return BSearchRecur(ar, mid+1, last, target);
}
int main(void)
{
int arr[] = {1, 3, 5, 7, 9};
int idx;
idx = BSearchRecur(arr, 0, sizeof(arr)/sizeof(int)-1, 7);
if(idx == -1)
printf("탐색 실패 \n");
else
printf("타겟 저장 인덱스: %d \n", idx);
idx = BSearchRecur(arr, 0, sizeof(arr)/sizeof(int)-1, 2);
if(idx == -1)
printf("탐색 실패 \n");
else
printf("타겟 저장 인덱스: %d \n", idx);
return 0;
}
#include <stdio.h>
int Factorial(int n)
{
if(n==0)
return 1;
else
return n * Factorial(n-1);
}
int main(void)
{
printf("1! = %d \n", Factorial(1));
printf("2! = %d \n", Factorial(2));
printf("3! = %d \n", Factorial(3));
printf("4! = %d \n", Factorial(4));
printf("9! = %d \n", Factorial(9));
return 0;
}
#include <stdio.h>
void Recursive(int num)
{
if(num<=0)
return;
printf("Recursive call! %d \n", num);
Recursive(num-1);
}
int main(void)
{
Recursive(3);
return 0;
}
728x90
그리드형
'IT > 자료구조_알고리즘' 카테고리의 다른 글
ch04. 윤성우의 열혈 자료구조 4장 예제 소스코드 (0) | 2021.05.24 |
---|---|
ch03. 윤성우의 열혈 자료구조 3장 예제 소스코드 (0) | 2021.05.24 |
ch01. 윤성우의 열혈 자료구조 1장 예제 소스코드 (0) | 2021.05.24 |
리눅스 커널 내부구조 요약 정리 2강 (0) | 2021.05.03 |
리눅스 커널 내부구조 요약 정리 (0) | 2021.05.03 |
댓글