목차
저자 머리말 = 4
필드 어드바이저 머리말 = 5
워밍업 = 6
강의 계획표 = 8
숲과 나무 이야기/강의 보조 자료 = 10
자료구조/알고리즘 관련 학습 로드맵 = 12
01 기초 다지기
Chapter 01 객체지향 방법론 = 25
01. 객체지향 개념 = 27
02. 객체 클래스와 상속 = 31
03. C++와 객체지향 = 33
인터페이스 파일 = 34
구현 파일 = 36
메시지 전달 요령 = 37
상속과 다형성 = 38
간단한 계층구조 = 40
연산자 오버로딩 = 41
04. 절차적 설계와의 비교 = 43
생활 속의 자료구조 = 45
요약 = 46
연습 문제 = 47
Chapter 02 추상 자료형 = 53
01. 추상 자료형 개념 = 55
사용과 구현의 분리 = 55
사용자 관점 = 55
구현자 관점 = 58
02. 추상 자료형과 C = 60
03. 추상 자료형과 C++ = 62
생활 속의 자료구조 = 65
요약 = 66
연습 문제 = 67
Chapter 03 포인터, 배열, 구조체 = 69
01. 포인터 = 71
동적 메모리 할당 = 72
주소 연산자 = 76
저네릭 포인터 = 78
댕글링 포인터, 가비지 = 79
상수 포인터 = 80
02. 참조 호출과 값 호출 = 82
값 호출 = 82
참조 호출 = 84
에일리어스 = 87
스와핑의 예 = 88
복사 생성자와 할당 연산자 = 90
03. 배열 = 93
배열 인덱스 = 93
배열과 포인터 = 95
배열 전달 = 97
동적 배열 = 100
04. 구조체 = 102
구조체 선언 = 102
구조체와 포인터 = 104
구조체 전달 = 106
05. 활성화 레코드 = 108
06. 디버깅을 위한 매크로 = 114
07. 표준 라이브러리 헤더와 프로그래밍 = 118
생활 속의 자료구조 = 120
요약 = 121
연습 문제 = 122
Chapter 04 재귀호출 = 131
01. 상징적 의미 = 133
02. 이진탐색 = 135
03. 재귀적 팩토리얼 = 138
04. 문자열 뒤집기 = 141
마지막 문자 제거 = 141
첫 문자 제거 = 142
05. K번째 작은 수 찾기 = 145
06. 피보나치 수열 = 148
07. 재귀 함수의 작성 = 150
08. 재귀호출의 필요성 = 151
09. 꼬리재귀 = 153
생활 속의 자료구조 = 155
요약 = 157
연습 문제 = 158
02 기본 자료구조
Chapter 05 리스트 = 169
01. 추상 자료형 리스트 = 171
02. C에 의한 리스트 구현 = 174
C 배열에 의한 리스트 구현 = 174
C 연결 리스트에 의한 리스트 구현 = 178
03. C++에 의한 리스트 구현 = 196
C++ 배열에 의한 리스트 구현 = 196
C++ 연결 리스트에 의한 리스트 구현 = 201
04. 배열과 연결 리스트 비교 = 205
생활 속의 자료구조 = 207
요약 = 208
연습 문제 = 209
Chapter 06 스택 = 221
01. 스택 개념 = 223
02. 추상 자료형 스택 = 225
03. C에 의한 스택 구현 = 227
C 배열에 의한 스택 구현 = 227
C 연결 리스트에 의한 스택 구현 = 229
04. C++에 의한 스택 구현 = 232
C++ 배열에 의한 스택 구현 = 232
C++ 연결 리스트에 의한 스택 구현 = 234
05. 리스트에 의한 스택 구현 = 236
06. 스택 응용 예 = 239
백 스페이스 키 = 239
후위 표현의 연산 = 239
진법 변환 = 241
문자열 뒤집기 = 241
괄호 매칭 = 242
07. 깊이우선 탐색 = 244
08. 스택과 재귀호출 = 251
09. 재귀호출 제거 = 253
생활 속의 자료구조 = 256
요약 = 257
연습 문제 = 258
Chapter 7 큐 = 265
01. 큐 개념 = 267
02. 추상 자료형 큐 = 269
03. C++ 연결 리스트에 의한 큐 구현 = 271
04. C++ 배열에 의한 큐 구현 = 275
05. 추상 자료형 리스트에 의한 큐 구현 = 281
06. 큐 응용 예 = 282
회문 = 282
시뮬레이션 = 283
그래픽 입력 모드 = 286
운영체제 288
07. 너비우선 탐색 = 290
08. 덱 = 293
생활 속의 자료구조 = 296
요약 = 297
연습 문제 = 298
03 알고리즘 소개
Chapter 08 알고리즘과 효율 = 307
01. 알고리즘 = 309
02. 알고리즘의 정확성 = 311
03. 정확성 증명 = 313
04. 알고리즘의 효율 = 317
접근적 복잡도 = 318
최악의 경우 효율 = 321
빅 오 기호 = 322
05. 효율 분석 예 = 327
리스트의 삽입, 삭제 = 327
선형탐색 = 328
이진탐색 = 330
06. 분할상각 복잡도 = 332
생활 속의 자료구조 = 336
요약 = 337
연습 문제 = 338
Chapter 09 정렬 알고리즘과 효율 = 347
01. 정렬의 분류 = 349
02. 선택 정렬 = 353
03. 버블 정렬 = 357
04. 삽입 정렬 = 360
05. 셸 정렬 = 363
06. 합병 정렬 = 365
07. 쾌속 정렬 = 371
08. 외부 정렬 = 377
09. 최선의 정렬 효율 = 380
10. 버켓 정렬과 셈 정렬 = 381
11. 기수 정렬 = 384
LSD 기수 정렬 = 385
MSD 기수 정렬 = 387
생활 속의 자료구조 = 391
요약 = 392
연습 문제 = 393
04 고급 자료구조
Chapter 10 트리 = 403
01. 트리 개요 = 405
02. 추상 자료형 트리 = 411
03. 배열에 의한 이진트리 구현 = 412
04. 포인터에 의한 이진트리 구현 = 415
05. 스택과 스레드 이진트리 = 421
06. 이진트리의 복사 = 424
07. 이진 탐색트리 = 425
이진 탐색트리의 탐색 = 426
이진 탐색트리의 삽입 = 428
이진 탐색트리의 삭제 = 430
이진 탐색트리의 효율 = 434
생활 속의 자료구조 = 437
요약 = 439
연습 문제 = 440
Chapter 11 우선순위 큐 = 455
01. 우선순위 큐 개요 = 457
02. 추상 자료형 우선순위 큐 = 459
03. 배열, 연결 리스트, 트리에 의한 구현 = 460
배열에 의한 구현 = 460
연결 리스트에 의한 구현 = 461
이진 탐색트리에 의한 구현 = 461
04. 힙에 의한 우선순위 큐 구현 = 463
힙 = 463
힙의 삭제 = 465
힙의 삽입 = 468
힙의 정렬 = 470
생활 속의 자료구조 = 474
요약 = 475
연습 문제 = 476
Chapter 12 탐색 알고리즘 = 483
01. 키, 레코드, 탐색 = 485
02. 이진탐색 = 486
03. 보간탐색 = 487
04. 이진 탐색트리 = 488
05. 기수탐색 = 490
문자열 키 = 490
디지털 탐색트리 = 491
기수 탐색트리 = 492
06. 해시 = 495
해시의 정의 = 495
해시 함수 = 497
문자열 키 = 497
선형탐사 = 499
제곱탐사 = 502
이중 해시 = 504
버켓과 별도 체인 = 505
유니버설 해시 = 507
재 해시 = 508
07. 자료구조의 선택 = 509
생활 속의 자료구조 = 511
요약 = 512
연습 문제 = 513
Chapter 13 균형 탐색트리 = 521
01. AVL 트리 = 523
02. 스플레이 기법 = 527
03. 2-3 트리 = 531
04. 2-3-4 트리 = 538
05. 레드블랙 트리 = 541
06. B-트리 = 547
생활 속의 자료구조 = 550
요약 = 551
연습 문제 = 552
05 알고리즘 실례와 설계
Chapter 14 그래프 알고리즘 = 563
01. 그래프 565
02. 추상 자료형 그래프 = 568
03. 그래프 표현 방법 = 569
인접행렬 = 569
인접행렬에 의한 그래프 구현 = 571
인접 리스트 = 575
인접 리스트에 의한 그래프 구현 = 577
04. 그래프 순회 = 579
05. 위상정렬 = 581
06. 신장트리 = 586
07. 최소 신장트리 = 588
프림 알고리즘 = 590
크루스칼 알고리즘 = 592
솔린 알고리즘 = 593
08. 최단 경로 = 595
09. 이행 폐쇄 = 599
10. 모든 쌍의 최단 경로 = 602
11. 이중연결 그래프 = 604
12. 유니언 파인드 = 606
13. 네트워크 플로우 = 610
생활 속의 자료구조 = 614
요약 = 615
연습 문제 = 616
Chapter 15 알고리즘의 설계 = 625
01. 알고리즘의 분류 = 627
02. 저명인사의 문제 = 628
03. 거스름 돈 문제 = 630
04. 허프만 코딩 = 632
05. 배낭 문제 = 636
06. 최대 최소의 문제 = 639
07. 피보나치 수열 문제 = 640
08. 행렬의 연속 곱셈 = 643
09. 메디안보다 큰 것 찾기 문제 = 647
10. 색칠 문제 = 648
11. 과반수 찾기 문제 = 649
12. 8-퀸 문제 = 651
13. 할당 문제 = 656
14. 세일즈맨 여행 문제 = 659
15. 스케줄링 문제 = 662
16. CNF-만족 문제 = 665
17. 3-컬러링 문제 = 666
18. P의 문제, NP의 문제 = 667
19. 소수 검증 문제, 인수 찾기 문제 = 670
20. 암호화 = 672
생활 속의 자료구조 = 676
요약 = 677
연습 문제 = 678
찾아보기 = 683