yise7***
2022-08-27

복잡한 수식은 최소화하고 이해에 꼭 필요한 수식만 담고 작동 원리를 단번에 이해할 수 있게 도와주는 다양한 그림과 바로 실행하고 확인할 수 있는 108개 소스 코드를 예제로 제공해 알고리즘의 얼개를 완벽히 이해할 수 있도록 구성했다.
이 책은 자료구조와 알고리즘 및 알고리즘의 설계 방법에 대해 기술하고 있는 책이다.
C언어로 완벽하게 구현된 코딩소스를 제공하기 때문에 C언어에 대한 기초 지식을
가지고 있어야 한다. 그래서 이 책은 알고리즘 뿐 아니라 C언어에 대한 내용까지도
한번에 배울 수 있는 책이기도 하다. 그렇다고 자바 개발자가 이 책을 읽지 말란 법은 없다
자바에서도 스택, 큐, 리스트는 엉청나게 많이 사용하고 있으니까 말이다.
그 내부 구조가 어떻게 구현되어 있는지 정확하게 이해할 수 있는 계기가 될거라 생각한다.
책은 처음부터 천천히 단계를 밟으며 설명하고 있다.
각 chapter 마다 처음에는 스택, 큐, 리스트, 트리 등에 대해 기본내용을 설명하고
그 자료구조를 C언어로 어떻게 구현하는지 보여주고
그림을 이용하여 자료의 추가, 삭제 시 발생할 수 있는 구조 변경을 설명하고 있다.
이 표현 방법은 자료구조를 이해하는데 가장 좋은 방법이라고 생각한다.
모든 설명이 끝난 후 최종적으로 전체적인 예제 소스를 기술하고 있기 때문에
코드를 읽어 내려가면서 다시 한번 자료구조의 내용을 이해할 수 있게 구성되어 있다.
알고리즘을 설명하는 부분은 정렬과 탐색, 힙, 해시 테이블, 그래프등을 설명하고 있는데
개념을 이해하고 예제코드를 공부하면서 전부터 궁금했던 DBMS의 내부구조를 이해하는데
조금이나마 도움이 될 수 있었다.
알고리즘 설계 기법은 굉장히 흥미로운 부분이었다. 특히 백트래킹 부분의 미로탈출,
8개의 퀸 문제는 아드레날린을 촉진시켜 오랫동안 구조의 논리를 생각하게 만들기 충분했다.
거의 30년전 전공으로 C언어를 배울 때 정렬, 미로탈출하는 방법을 과제로 받곤 했었다.
그때부터 지금까지 자료구조의 핵심은 변함이 없다는 것을 다른 독자들은 알고 있을까?
이 책은 자료구조의 이해와 알고리즘의 설계 기법에 대해 적확하게 기술하고 있다.
이 책을 읽으면서 나는 30년전에 배우지 못한 분할정복, 동적 계획법, 백트래킹 등의 설계 기법을 다시금
생각하게 하고 배우는 계기가 되었을 뿐아니라 자바로 개발하고 있는 현재 프로젝트에서
고객의 요구사항 중 응용할 방법에 대해 다시 고민하게 만드는 시간을 가지게 되었다.
초중급 대상의 독자에게 필요한 책이지만 자료구조와 알고리즘에 대해 막연했던 지식을
정리하고자 하는 독자뿐 아니라 기본만 정리된 C언어 책을 공부한 독자가 C언어가
어떻게 구현되는지를 알고 싶은, C언어를 잘 읽고 코딩하기를 원하는 독자에게도
훌륭한 지침서가 될거라 생각한다.
개발자는 꼭 한번 자료구조와 알고리즘에 대해 알고 가기를 바란다.
"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."