목차 일부
CHAPTER 1 데이터 구조와 데이터 처리
1. 데이터와 정보 = 3
2. 데이터 처리를 위한 데이터 구조 = 4
3. 데이터의 표현 = 6
3.1. 데이터의 표현 = 6
4. 알고리즘 = 17
4.1. 알고리즘의 정의 = 17
4.2. 시간 및 공간 복잡도와 그 상호 관계 = 18
연습 문제 = 24...
더보기
목차 전체
CHAPTER 1 데이터 구조와 데이터 처리
1. 데이터와 정보 = 3
2. 데이터 처리를 위한 데이터 구조 = 4
3. 데이터의 표현 = 6
3.1. 데이터의 표현 = 6
4. 알고리즘 = 17
4.1. 알고리즘의 정의 = 17
4.2. 시간 및 공간 복잡도와 그 상호 관계 = 18
연습 문제 = 24
CHAPTER 2 기본 데이터 구조
1. 순서 리스트 = 35
2. 배열 = 37
2.1. 배열의 정의 = 38
2.2. 배열 요소의 위치 계산 = 40
3. 행렬 = 51
3.1. 전치 행렬 = 51
3.2. 희소 행렬 = 52
4. 레코드 = 57
4.1. 레코드의 개요 = 58
4.2. C/C++에서의 레코드 처리 = 59
5. 스트링 = 62
5.1. 스트링의 개요 = 62
5.2. 스트링의 운용 = 64
5.3. C/C++에서의 스트링 처리 = 66
연습 문제 = 73
CHAPTER 3 리스트
1. 선형 리스트(Linear List) = 79
1.1. 선형 리스트의 삽입과 삭제 연산 = 81
1.2. 선형 리스트의 삽입과 삭제 시 평균 이동 횟수 = 82
2. 링크드 리스트 = 84
2.1. 링크드 리스트의 구조 = 85
2.2. C/C++에서의 링크드 리스트 처리 = 88
3. 다중 링크드 리스트 = 92
3.1. 이중 링크드 리스트 = 92
3.2. 환형 링크드 리스트 = 96
3.3. 이중 환형 링크드 리스트 = 99
연습 문제 = 100
CHAPTER 4 스택, 큐, 데크
1. 스택 = 107
1.1. 스택의 정의 = 107
1.2. 스택의 구현 방법 = 110
1.3. C/C++에서 스택의 이용 = 111
1.4. 스택의 구현 알고리즘 = 115
2. 큐 = 128
2.1. 큐의 정의 = 128
2.2. 큐의 구현 방법 = 129
2.3. 큐의 구현 알고리즘 = 130
2.4. 큐의 오버플로 처리 = 136
2.5. 큐의 활용 = 145
2.6. 큐의 길이 = 145
3. 다중 스택과 다중 큐 = 147
3.1. 다중 스택 = 147
3.2. 다중 큐 = 148
4. 데크 = 149
4.1. 데크의 정의 = 149
4.2. 데크의 구현 = 150
연습 문제 = 152
CHAPTER 5 트리
1. 트리 = 162
1.1. 트리의 정의 = 162
1.2. 용어 = 163
1.3. 트리의 종류 = 165
1.4. 트리의 문제 = 166
2. 이진 트리 = 168
2.1. 이진 트리의 종류 = 170
2.2. 이진 트리의 생성 방법 = 174
2.3. 이진 탐색 트리 = 179
3. 트리의 운행 = 182
3.1. 트리의 운행 = 182
3.2. 이진 트리의 운행 = 185
4. 연산식의 표현 = 191
5. 스레드 이진 트리 = 194
연습 문제 = 199
CHAPTER 6 그래프
1. 그래프 = 212
1.1. 그래프의 용어 = 213
1.2. 그래프의 종류 = 214
2. 그래프의 표현 = 221
2.1. 인접 행렬(adjacency matrix) = 221
2.2. 인접 리스트(adjacency list) = 223
2.3. 인접 다중 리스트(adjacency multilist) = 224
3. 그래프의 운행 = 226
3.1. 깊이 우선 탐색 = 226
3.2. 너비 우선 탐색 = 232
4. 최단 경로 = 238
4.1. 하나의 출발점에서 모든 종착점 = 238
4.2. 모든 쌍(all-pairs) 최단 경로 문제 = 242
4.3. 이행적 폐쇄 = 243
5. 최소 스패닝 트리 = 245
5.1. Prim의 방법 = 246
5.2. Kruskal 방법 = 248
연습 문제 = 250
CHAPTER 7 정렬
1. 정렬의 개요 = 257
2. 내부 정렬 = 261
2.1. 삽입 정렬 = 261
2.2. 버블 정렬 = 265
2.3. 셀렉션 정렬 = 270
2.4. 쉘 정렬 = 274
2.5. 퀵 정렬 = 282
2.6. 2-way 병합 정렬 = 288
2.7. 기수 정렬 = 293
2.8. 힙 정렬 = 301
3. 외부 정렬 = 312
3.1. 밸런스드 병합 정렬(balanced merge sort) = 312
3.2. 다단계 병합 정렬(polyphase merge sort) = 316
3.3. 캐스케이드 병합 정렬(cascade merge sort) = 318
3.4. 오실레이팅 병합 정렬(oscillating merge sort) = 321
연습 문제 = 324
CHAPTER 8 탐색
1. 탐색의 개요 = 333
1.1. 탐색의 정의 = 333
1.2. 평균 탐색장 = 334
2. 탐색 방법 = 337
2.1. 선형 탐색, 순차 탐색(Linear, Sequential Search) = 337
2.2. 이진 탐색 = 341
2.3. 피보나치 탐색(Fibonacci Search) = 350
2.4. 보간 탐색(Interpolation Search) = 356
2.5. 블록 탐색(Block Search) = 357
2.6. 이진 탐색 트리에 의한 탐색 = 364
2.7. AVL 트리 = 372
2.8. B 트리 = 373
3. 해싱 = 374
3.1. 해싱의 개요 = 374
3.2. 충돌 해결 = 379
3.3. 평균 탐색 길이 = 383
연습 문제 = 385
CHAPTER 9 기억장치와 파일 처리
1. 기억장치 = 395
1.1. 주기억 장치 = 395
1.2. 보조 기억장치 = 396
2. 파일 처리 = 398
2.1. 파일의 분류 = 398
2.2. 파일의 편성 = 403
연습 문제 = 411
CHAPTER 10 기억장소 관리
1. 주기억 장치 관리 = 421
1.1. 주기억 장치 관리 기법 = 421
1.2. 주기억 장치 관리상의 문제점 및 해결책 = 424
1.3. 주기억 장치에서 프로그램과 데이터의 적재 방법 = 425
2. 버디 시스템을 이용한 기억장치 관리 = 428
3. 피보나치 기억장소 관리 = 431
4. 기억장소 관리 최적화 방법 = 433
연습 문제 = 438
INDEX = 441
더보기 닫기