자료구조
-
2. 재귀(Recursion)자료구조 2021. 1. 31. 15:27
2-1 함수의 재귀적 호출의 이해 재귀함수의 기본적인 이해 재귀함수 -> 함수 내에서 자기 자신을 다시 호출하는 함수를 의미한다. void Recursive(void){ printf("Recursive call! \n"); Recursive(); // 자신을 호출 } 그렇다면 위 형태의 함수호출은 어떻게 이해해야 할까? 호출 Recursive();를 만나면 다시 void Recursive(void){}로 재진입을 하는 걸까? 완료되지 않은 함수를 다시 호출하는 것이 가능하다. Recursive 함수가 호출되면, Recursive 함수의 복사본이 만들어져 본사본이 실행되는 구조로 재귀함수의 호출이 진행된다. 즉 원본 함수가 하나 있고, 재귀함수 호출을 하게 되면 원본 함수의 복사본 함수를 실행시킨다는 뜻이..
-
1. 자료구조와 알고리즘의 이해자료구조 2021. 1. 31. 15:25
1-1 자료구조의 기본적인 이해 자료구조란 무엇인가? 프로그램이란 데이터를 표현하고, 그렇게 표현된 데이터를 처리하는 것이다. 데이터의 저장을 담당하는 것이 자료구조이다. 즉, 넓은 의미에서 int형 변수도, 배열도 자료구조의 일종이다. 자료구조와 알고리즘 자료구조가 데이터의 표현 및 저장밥법을 뜻한다면, 알고리즘은 표현 및 저장된 데이터를 대상으로 하는 문제의 해결 방법을 뜻한다. 예를 들어 다음의 배열 선언은 자료구조적 측면의 코드이다. int arr[10] = {1,2,3,4,5,6,7,8,9,10}; 반면 배열에 저장된 모든 값의 합을 더하는 반복문의 구성은 알고리즘적 측면의 코드이다. for(idx = 0l idx 시간 복잡도) 어떤 알고리즘이 어떠한 상황에서 메모리를 적게 쓰고 또 많이 쓰는가..