C언어 경험이 있으면서 컴퓨터 프로그래밍에 관심이 있는 사람과 체계적 응용 소프트웨어 설계를 필요로 하는 독자들을 위한, 기초자료구조 입문서. 이미 생활 속에서 사용되고 있는 자료구조나 자료구조의 응용이 가능한 실생활의 사례를 들어 자료 구조를 소개했으며, 각 단원마다 풍부한 연습문제를 수록하였다. 또한 알고리즘에서 다루어야 할 모든 경우의 예제를 가지고 알고리즘 수행 과정을 세세하게 단계별로 그림을 통해 표현하였다.
조태남
이화여자대학교 전자계산학과 이학사
이화여자대학교 대학원 전자계산학과 이학석사
이화여자대학교 과학기술대학원 컴퓨터학과 공학박사
한국전자통신연구원 선임연구원
이화여자대학교 컴퓨터학과 전임강사
우석대학교 정보보안학과 조교수
한국전자통신연구원 초빙연구원
㈜한마인드 정보기술 감사
국제공인정보시스템 보안전문가(CISSP)
Chapter 1. 자료구조 소개
Chapter 2. 배열과 리스트
Chapter 3. 스택과 큐
Chapter 4. 트리
Chapter 5. 그래프
Chapter 6. 정렬
Chapter 7. 해싱
초보자를 위한 안내서
이 책은 자료구조를 달가워하지 않는 학생들을 대상으로 하며, 한 학기 강의를 주 목적으로 한다. 또한 자료구조나 알고리즘을 세부전공으로 택한 사람보다는, C언어 경험이 있으면서 컴퓨터 프로그래밍에 관심이 있는 사람과 체계적 응용 소프트웨어 설계를 필요로 하는 사람을 대상으로 한다.
사례를 통한 자세한 설명
책에서 배운 이론의 중요성을 실감하기란 쉽지 않다. 이 책에서는 이미 생활 속에서 사용되고 있는 자료구조나 자료구조의 응용이 가능한 실생활의 사례를 가지고 설명하므로 자료구조의 개념과 필요성 및 유용성을 쉽게 이해할 수 있다.
다양하고 풍부한 연습문제
각 단원마다 풍부한 연습문제를 제공한다. [○/×]형 객관식 문제는 본문 내용에 대한 기초적 이해도를 점검하고, 혼동할 수 있는 주요 포인트를 지적함으로써 확실한 기초를 다질 수 있게 한다. 주관식 문제는 본문 중의 내용을 응용하는 문제로서 응용력과 본문 내용에 대한 이해도를 배가시킨다.
기초 자료구조만 선별
두꺼운 책의 두께와 강의 중에 다루지 않을 어려운 내용은 학습 의욕을 저하시킨다. 학부에서 한 학기에 배울 수 있는 분량으로 제한하였으며, 자료구조가 어렵다는 거부감을 갖지 않도록 필수적이고 기초적인 내용들만 선별하여 담았다.
단계별 설명 방식
예제는 알고리즘의 이해를 돕기 위한 것이며, 문제 해결을 위해서는 다양한 모든 경우를 다루어야 한다. 특정 경우만을 다루도록 간략화 된 예제는 다른 경우에 대한 의혹을 불러일으킨다. 한편 복잡한 예제는 알고리즘 자체보다 도리어 이해하기가 어렵다. 이 책에서는 각 경우에 대한 예제와 해결 알고리즘을 각각 제시하여 이해의 시작을 돕고, 모든 경우를 종합하는 예제를 다룸으로써 알고리즘을 완벽하게 파악할 수 있게 한다.
그림을 통한 꼼꼼한 추적
사례를 통하여 알고리즘의 윤곽을 파악하더라도, 새로 접하는 자료구조와 알고리즘을 C언어로만 이해하는 것은 누구에게나 쉬운 일이 아니다. 알고리즘에서 다루어야 할 모든 경우의 예제를 가지고 알고리즘 수행 과정을 세세하게 단계별로 그림을 통해 표현하였다. 알고리즘의 아이디어를 그림으로 먼저 이해한 후, C언어로 표현된 알고리즘을 이 그림에 대응시켜 이해하도록 구성하였다.