이 책은 프로그래머의 기초 지식인 알고리즘과 자료구조를 이론적인 접근과 구현을 다루고 있습니다.
자료구조는 프로그램에 관라할 데이터를 어떠한 구조로 보관하고 접근할 것인가를 다루는 것이죠. 선형 자료구조인 배열이나 연결리스트, 스택, 큐와 비선형 자료구조인, 트리, 그래프 등이 있습니다.
알고리즘은 문제를 해결하기 위한 논리의 집합이예요. 문제 해결 방법으로 분류하면 반복 알고리즘, 재귀 알고리즘, 분할 정복, 동적 프로그래밍, 탐욕 알고리즘 등이 있죠.
컴퓨터 프로그래밍을 업무로 하는 이들에게 알고리즘과 자료구조는 실질적인 구현에서 필수적으로 필요합니다. 그리고 이들을 다루는 책은 매우 다양하죠.
이론으로 접근하는 책들은 다양한 알고리즘과 자료구조를 다루지만 실질적인 구현없이 추상적으로 소개하 할 때가 많습니다. 그리고 실질적인 구현도 다루는 책들은 아주 기초적인 알고리즘과 자료구조를 중심으로 다루고 있어요.
자료구조에서는 선형 자료구조인 배열, 연결리스트, 스택, 큐를 다루고 비선형 자료구조는 이진 탐색 트리와 그래프를 다룹니다. 이 책에서는 이러한 자료구조를 설명하고 직접 구현하는 과정이 있습니다.
그리고 알고리즘은 문제 해결 방법에 따라 반복 알고리즘, 재귀 알고리즘, 분할 정복 알고리즘, 동적 프로그래밍, 탐욕 알고리즘 등을 소개하고 직접 구현하는 과정을 다룰 것입니다.
이 책 또한 의사 결정 알고리즘처럼 전문적인 알고리즘을 비롯하여 초보자들이 접근하기 어려운 부분은 다루지 않습니다. 보다 탄탄한 프로그래밍 실력을 다지기 위해 알고리즘과 자료구조를 익히고자 하는 많은 이들에게 도움이 되길 바랄게요.