목차
CHAPTER 01 파이썬 입문
1.1 파이썬 개요
1.2 파이썬 언어의 객체
1.3 표현식, 연산자, 우선순위
1.4 제어 흐름
1.5 함수
1.6 간단한 입력과 출력
1.7 예외 처리
1.8 이터레이터와 제너레이터
1.9 파이썬의 다른 유용한 특징들
1.10 범위와 네임스페이스
1.11 모듈과 import 명령문
1.12 연습 문제
CHAPTER 02 객체 지향 프로그래밍
2.1 목표, 원칙, 패턴
2.2 소프트웨어 개발
2.3 클래스 정의
2.4 상속
2.5 네임스페이스와 객체 지향
2.6 얕은 복사와 깊은 복사
2.7 연습 문제
CHAPTER 03 알고리즘 분석
3.1 실험 기반 성능 분석
3.2 이 책에서 사용된 일곱 가지 함수
3.3 점근적 분석
3.4 간단한 증명 기법들
3.5 연습 문제
CHAPTER 04 재귀
4.1 주요 사례
4.2 재귀 알고리즘 분석하기
4.3 잘못된 재귀 사용
4.4 재귀의 추가 사례
4.5 재귀 알고리즘 설계하기
4.6 꼬리 재귀 제거하기
4.7 연습 문제
CHAPTER 05 배열 기반 시퀀스
5.1 파이썬의 시퀀스 유형
5.2 저수준 배열
5.3 동적 배열과 분할 지불
5.4 파이썬 시퀀스 타입의 효율성
5.5 배열 기반 시퀀스 사용
5.6 다차원 데이터셋
5.7 연습 문제
CHAPTER 06 스택, 큐, 양방향 큐
6.1 스택
6.2 큐
6.3 양방향 큐
6.4 연습 문제
CHAPTER 07 연결 리스트
7.1 단일 연결 리스트
7.2 순환 연결 리스트
7.3 이중 연결 리스트
7.4 포지션 리스트 ADT
7.5 포지션 리스트의 정렬
7.6 사례 연구: 접근 빈도 관리
7.7 배열 기반 시퀀스와 연결 기반 시퀀스
7.8 연습 문제
CHAPTER 08 트리
8.1 일반 트리
8.2 이진 트리
8.3 트리의 구현
8.4 트리 순회 알고리즘
8.5 사례 연구: 표현식 트리
8.6 연습 문제
CHAPTER 09 우선순위 큐
9.1 우선순위 큐 추상 데이터 타입
9.2 우선순위 큐 구현
9.3 힙
9.4 우선순위 큐를 사용한 정렬
9.5 적응형 우선순위 큐
9.6 연습 문제
CHAPTER 10 맵, 해시 테이블, 스킵 리스트
10.1 맵과 딕셔너리
10.2 해시 테이블
10.3 정렬된 맵
10.4 스킵 리스트
10.5 집합, 다중 집합, 다중 맵
10.6 연습 문제
CHAPTER 11 검색 트리
11.1 이진 검색 트리
11.2 균형 검색 트리
11.3 AVL 트리
11.4 스플레이 트리
11.5 (2, 4) 트리
11.6 레드-블랙 트리
11.7 연습 문제
CHAPTER 12 정렬과 검색
12.1 정렬 알고리즘 학습의 필요성
12.2 병합 정렬
12.3 퀵 정렬
12.4 알고리즘 관점에서 살펴본 정렬
12.5 정렬 알고리즘 비교하기
12.6 파이썬의 내장 정렬 함수
12.7 선택
12.8 연습 문제
CHAPTER 13 텍스트 처리
13.1 풍부한 디지털화된 텍스트
13.2 패턴 매칭 알고리즘
13.3 동적 프로그래밍
13.4 텍스트 압축과 그리디 기법
13.5 트라이
13.6 연습 문제
CHAPTER 14 그래프
14.1 그래프
14.2 그래프를 위한 자료구조
14.3 그래프 순회
14.4 전이적 폐쇄
14.5 방향 비순환 그래프
14.6 최단 경로
14.7 최소 스패닝 트리
14.8 연습 문제
CHAPTER 15 메모리 관리와 B- 트리
01 운영체제의 정의와 학습 방법
02 운영체제 간략 역사
요점 정리 | 퀴즈
부록 A 파이썬의 문자열
부록 B 유용한 수학 개념