이것이 자료구조+알고리즘이다 with C 언어 - 문제 해결 능력을 키워주는 자료구조+알고리즘 입문서 이것이 시리즈
박상현 지음 / 한빛미디어 / 2022년 8월
평점 :
장바구니담기


C언어를 가르치고 있는데, 2학기에는 좀 더 다양한 예제를 활용해 보고자 해서 이 책을 선택했다. 기초적인 내용들을 배우고 포인터를 본격적으로 활용하고자 할 때 리스트, 스택, 큐와 같은 자료구조를 구현해보지 않을 수는 없으므로. 그리고 간단한 정렬과 탐색도 연습한다. 물론 자료구조, 알고리즘 과목이 따로 있다. 하지만 처음 C언어를 배우면서도 이런 예제 위주로 연습을 하다 보면 나중에 해당 과목을 수강할 때 도움이 많이 되리라 생각한다. 대부분의 독자들은 아마 자료구조와 알고리즘 두 마리 토끼를 잡기 위해 이 책을 선택하겠지만, 나의 경우에는 C언어의 입장에서 이 책을 살펴보았다.


보통 책이 Chapter 1부터 시작하는데 이 책에는 Chapter 0이 있다. <알아두면 쓸 데 있는 자료구조와 알고리즘>이라는 제목으 0챕터에서는 자료구조와 알고리즘의 정이, 그리고 C 언어로 메모리를 다루는 방법에 대해서 설명을 하고 있다. 오리엔테이션의 느낌으로. C언어 문법에 익숙하지 않은 사람도 가볍게 구조체와 포인터, 메모리할당과 해제에 대해 연습해 볼 수 있다.


1장부터 4장까지는 자료구조 파트로 리스트, 스택, 큐, 트리 구조를 다루고 있고, 5장부터 10장까지는 각종 정렬 알고리즘, 탐색 알고리즘, 우선순위 큐와 힙, 해시 테이블, 그래프 그리고 문자열 탐색에 대해 다룬다. 마지막 파트인 11장 부터 15장까지에서는 알고리즘 설계 기법들을 설명하고 있는데, 알고리즘의 성능 분석, 분할 정복, 동적계획법, 탐욕 알고리즘, 백트레킹을 소개하고 있다.


나는 특히 연습문제로 어떤 것들이 주어졌는지에 관심이 많은데, 개념을 설명하면서도 예제 코드를 제시하고 있지만, 이렇게 연습문제를 통해서 개념을 더 다질 수 있다. 개념을 잘 이해하고 있는지 묻는 문제와 주어진 코드를 수정/개선하는 문제들로 이루어져 있다.


레드 블랙 트리에 삼촌 노드, 할아버지 노드라는 표현을 사용한 것도 재밌지만^^ 노드 삽입/삭제도 코드로 구현해 볼 수 있게 설명이 자세히 되어 있다. 레드블랙 특성에 대해서만 설명하고 넘어가는 책도 많이 보았는데.


동적계획법 장에서는 분할정복 기법이나 재귀를 이용하는 것과는 어떻게 다른지를 비교해서 설명하고 있다. 단지 이미 구해놓은 값을 활용한다는 말에만 집중해서 "재귀가 동적계획법과 같은 것 아닌가요?" 하는 학생들도 많이 있는데 코드로 차이를 설명해 준다.


이 책은 C언어 기초문법을 배운 후 좀 더 연습해 보고 싶은 학생, 자료구조와 알고리즘을 본격적으로 배우려고 하는 학생에게 추천한다. 한 권의 책에 자료구조와 알고리즘을 모두 담고 있기 때문에 이 한 권으로는 만족하지 못할 수도 있다. 하지만 시작하는 책으로는 참 좋을 것 같다.


한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다.



댓글(0) 먼댓글(0) 좋아요(0)
좋아요
공유하기 북마크하기찜하기 thankstoThanksTo