<자료구조>는 컴퓨터과학의 전공필수 교과목으로 <알고리즘>, <운영체제> 과목의 기초가 되는 많은 핵심 내용을 포함하고 있다. 또한, 다수의 컴퓨터 분야 자격증 시험에 자료구조 문제가 출제되고 있다. 이번 개정판은 기존 <파이썬으로 배우는 자료구조 프로그래밍> 책을 2년여간 강의에 활용한 경험을 바탕으로 내용을 추가하고 오류를 수정하여 저술하였다.
특히, 4장. 스택과 큐, 5장. 이진 트리의 높이와 깊이, 8장의 쉘 정렬 구현 프로그램에 수정사항이 있으며, 11장에 확장 해싱과 12장에 AVL 트리 프로그램을 새로 추가하였다. 또한, 각 챕터의 후반에 문제 풀이 위주의 연습 문제와 코딩을 요구하는 실습 문제를 분리 편성하고 내용을 수정하였다. 연습 문제에는 본 강좌를 진행하면서 사용한 시험 문제를 위주로 수록하였으며, 실습 문제는 학생들에게 부여한 실습 과제 문제를 포함하였다.
본문에는 강의를 듣지 않고도 혼자서 자료구조를 공부할 수 있도록 충분한 이론 설명과 이해하기 쉬운 예제를 수록하려고 하였으며, 대학교 2~3학년 수준에 적합하도록 난이도를 조절하였다.
다음은 강의자를 위한 1학기 분량의 챕터 편성이다. 1장~7장은 비교적 기초 내용으로 구성하여 학기 전반부에 빠르게 모두 마칠 수 있다. 8장~12장은 심화 내용으로 학기 후 반부에 시간 여유를 갖고 천천히 강의하는 것을 권장한다. 전반부의 한 챕터를 후반부로 이동하고 후반부의 일부 내용을 생략하는 것도 가능하다.
여전히 C언어나 자바를 사용하여 <자료구조>를 공부하는 경우가 많은데 파이썬 언어를 자료구조 학습에 사용해도 큰 문제는 없다고 생각한다. 다만 4장의 스택과 큐 단원에 서 배열 구현 방식과 파이썬의 리스트 구현 방식을 함께 공부하는 것도 좋다고 생각하니 참고하기 바란다.
<한 학기 강의 계획표>
학기 전반부
학기 후반부
1장 (자료구조 개요)
2장 (파이썬 자료형)
3장 (재귀 호출)*
4장 (스택과 큐)
5장 (연결 리스트)
6장 (이진 트리)*
7장 (최대힙)
8장 (정렬 알고리즘)*
9장 (그래프)
10장 (최단 경로와 작업 네트워크)
11장 (탐색과 해싱)*
12장 (탐색 트리)*
중간시험
기말시험
* 고급 주제 포함 챕터
본 서의 일부 챕터에는 [고급]으로 표시된 심화 주제가 포함되어 있다. 심화 주제는 <알고리즘> 교과에 포함되거나 자료구조 기초 과목에는 자주 포함되지 않는 내용을 의미한다. 성취도 수준이 높은 학생들이 도전해 볼만한 주제라고 생각한다. 또한, 학습자나 강의자의 상황에 따라 [고급] 주제를 제외하는 것도 가능하다.
● N-Queens 문제
● 허프만 코딩 트리
● 쉘 정렬
● 확장 해싱
● B-트리
각 챕터의 맨 뒤에는 [핵심 개념]을 추가하여 해당 챕터의 내용에서 알아야 할 가장 중요한 개념을 3개 내외의 항목으로 정리하였다. 또한, 수록된 예제 프로그램은 거의 모든 파이썬 개발 환경에서 실행 가능하며, 본 서를 집필할 때는 마이크로소프트 비주얼 스튜디오 코드를 주로 사용하였다.
이번 개정판을 내면서 완성도를 높이기 위하여 이전보다 많은 검토를 하였다고 생각 하지만, 출판된 이후에 책을 읽다 보면 늘 아쉬움이 남는다. 이번에도 다르지는 않겠지 만, 이 책이 <자료구조>를 공부하는 학생들과 강의하시는 분들에게 작은 도움을 되기를 기대해 본다.
끝으로, <자료구조> 책을 꾸준히 출판할 수 있도록 많은 도움을 주신 <휴먼사이언스> 의 여러분들께 감사의 마음을 전합니다.
2025년 2월 - 머리말