Did you know that you can navigate the posts by swiping left and right?
읽고 있는 책에 의하면, 다음의 C언어 수준은 되야지 이 책을 읽을 수 있다고 한다. 필자는 C언어를 배운지가 어언 1년이 지났고, 그 이후로는 한번도 C언어를 써본적이 없기 때문에 내사랑 JAVA 기억나는게 하나도 없다. printf(“HelloWorld”); 정도?
자료구조에서는 데이터를 표현하고 저장하는 방법에 대해서 설명한다. int나 구조체, 배열 등도 자료구조의 일종인데, 이 책에서 공부할 자료구조는 그렇게 간단한 것이 아니란다. 망했다. 배열도 잘 못 다루는데
선형 자료구조 (Linear Data Structure) 데이터를 선의 형태로, 또는 일렬로 저장하는 방식이다. 예를 들면 리스트, 스택, 큐 등이 있다.
비선형 자료구조 (Non-Linear Data Structure) 데이터를 나란히 저장하지 않는 구조. 예를 들면 트리, 그래프 등이 있다.
자료구조(표현 및 저장된 데이터)를 대상으로 하는 ‘문제의 해결 방법’을 의미한다.
int arr[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; // 자료구조적 측면
for(i = 0; i < 10; i++) { // 알고리즘적 측면
sum += arr[i];
}
자료구조와 알고리즘은 이처럼 밀접한 관계를 갖는다. 자료구조가 배열이 아니라 다른 식으로 구성되어있었다면, 다른 방식의 알고리즘을 적용했을 것이다. 즉, 자료구조가 결정되어야 효율적인 알고리즘을 결정할 수 있다.
자료구조에 따라 알고리즘은 달라진다.