목차

1. 자료구조와 알고리즘 
1.1. 자료구조와 알고리즘 
1.2. 추상 데이터 타입 
1.3. 알고리즘의 성능 분석 
1.4. 자료 구조 표기법 
■ 연습문제 

2. 순환 
2.1. 순환의 소개 
2.2. 거듭 제곱 값 계산 
2.3. 피보나치 수열의 계산 
2.4. 하노이탑 문제 
■ 연습문제 

3. 배열, 구조체, 포인터 
3.1. 배열 
3.2. 배열의 응용: 다항식 
3.3. 배열의 응용: 희소행렬 
3.4. 구조체 
3.5. 포인터 
3.6. 동적 메모리 할당 
■ 연습문제 

4. 리스트 
4.1. 리스트 추상 데이터 타입 
4.2. 배열로 구현한 리스트 
4.3. 연결 리스트 
4.3.1. 연결 리스트의 소개 
4.3.2. 단순 연결 리스트 
4.3.3. 원형 연결 리스트 
4.3.4. 이중 연결 리스트 
4.3.5. 연결 리스트의 응용: 다항식 
4.4. 연결 리스트로 구현된 리스트 
4.5. 선형 리스트의 응용: 텍스트 에디터 
■ 연습문제 

5. 스택 
5.1. 스택 추상 데이터 타입 
5.2. 배열로 구현한 스택 
5.3. 연결 리스트로 구현한 스택 
5.4. 괄호 검사 
5.5. 수식의 계산 
5.6. 미로 탐색 문제 
■ 연습문제 

6. 큐 
6.1. 큐 추상 테이터 타입 
6.2. 배열로 구현된 큐 
6.3. 연결 리스트로 구현된 큐 
6.4. 덱 
6.5. 큐의 응용 
■ 연습문제 

7. 트리 
7.1. 트리의 개념 
7.2. 이진 트리 소개 
7.3. 이진 트리 표현 
7.4. 이진 트리 순회 
7.5. 이진 트리 연산 
7.6. 스레드 이진 트리 
7.7. 이진 탐색 트리 
7.8. 이진 탐색 트리의 응용: 영어 사전 
■ 연습문제 

8. 우선 순위 큐 
8.1. 우선 순위 큐 추상 자료형 
8.2. 우선 순위 큐의 구현 방법 
8.3. 히프 
8.3.1. 히프의 개념 
8.3.2. 히프의 구현 
8.3.3. 삽입 연산 
8.3.4. 삭제 연산 
8.3.5. 히프의 복잡도 분석 
8.4. 히프의 응용 
■ 연습문제 

9. 정렬 
9.1. 정렬이란? 
9.2. 선택 정렬 
9.3. 삽입 정렬 
9.4. 버블 정렬 
9.5. 쉘 정렬 
9.6. 합병 정렬 
9.7. 퀵 정렬 
9.8. 히프 정렬 
9.9. 기수 정렬 
9.10. 정렬 알고리즘의 비교 
9.11. 정렬의 응용: 영어 사전을 위한 정렬 
■ 연습문제 

10. 그래프 
10.1. 그래프란? 
10.2. 그래프 추상 데이터 타입 
10.3. 그래프의 표현 방법 
10.4. 그래프의 탐색 
10.4.1. 깊이 우선 탐색 
10.4.2. 너비 우선 탐색 
10.5. 연결 성분 
10.6. 신장 트리 
10.7. 최소 비용 신장 트리 
10.7.1. Kruskal의 MST 알고리즘 
10.7.2. Prim의 MST 알고리즘 
10.8. 최단 경로 
10.8.1. Dijkstra의 최단 경로 알고리즘 
10.8.2. Floyd의 최단 경로 알고리즘 
10.9. 위상 정렬 
■ 연습문제 

11. 해싱 
11.1. 해싱이란? 
11.2. 추상 자료형 사전 구조 
11.3. 해싱의 구조 
11.4. 해쉬 함수 
11.5. 충돌해결책 
11.5.1. 선형 조사법 
11.5.2. 체이닝 
11.6. 해싱의 성능 분석 
■ 연습문제 

12. 탐색 
12.1. 탐색이란? 
12.2. 정렬되지 않은 배열에서의 탐색 
12.3. 정렬된 배열에서의 탐색 
12.4. 균형 이진 탐색 트리 
12.4.1. AVL 트리 
12.4.2. 2-3 트리 
12.4.3. 2-3-4 트리 
■ 연습문제