목 차
Chapter 01 자료구조 소개
01 자료구조란
02 자료구조와 알고리즘
03 자료구조의 추상 데이터 타입
Chapter 02 재귀(자기호출)와 귀납적 사고
01 자료구조와 재귀
02 재귀 구조 예
03 재귀와 수학적 귀납법
연습문제
Chapter 03 알고리즘의 성능
01 알고리즘 수행 시간이란
02 알고리즘 복잡도
1 O-표기
2 Ω-표기
3 Θ-표기
4 점근적 표기법의 수학적 정의
5 집합 표기를 대신하는 ‘=’
6 시각적 정리
연습문제
Chapter 04 파이썬 기초
01 파이썬 언어의 특징
02 파이썬 사용 기초
1 파이썬 코드의 수행
2 프린트
3 수의 처리
4 문자열
5 제어
6 불변 타입과 가변 타입
7 리스트, 튜플, 딕셔너리, 집합
8 복사호출, 참조호출, 할당호출
9 클래스
10 순회 가능 클래스
03 프로그램 수행
04 패키지와 모듈
05 파이썬 개발 환경
Chapter 05 리스트
01 리스트란
1 생활 속의 리스트
2 리스트의 작업
3 리스트의 구현
02 배열 리스트(파이썬 기본 제공)
1 리스트의 객체 구조
2 리스트의 작업
3 파이썬 내장 리스트의 한계
03 연결 리스트
1 연결 리스트의 객체 구조
2 연결 리스트의 작업
3 연결 리스트의 구현
04 배열 리스트와 연결 리스트의 비교
05 연결 리스트의 개선 및 확장
1 원형 연결 리스트
2 원형 연결 리스트 구현 및 연결 리스트 개선
3 양방향 연결 리스트
4 양방향 원형 연결 리스트의 구현
연습문제
Chapter 06 스택
01 스택이란
1 생활 속의 스택
2 스택의 개념과 원리
3 추상 데이터 타입 스택
02 리스트를 이용한 스택
1 리스트 스택의 객체 구조
2 리스트 스택의 작업과 구현
03 연결 리스트를 이용한 스택
1 연결 리스트 스택의 객체 구조
2 연결 리스트 스택의 작업과 구현
04 스택 응용
1 문자열 뒤집기
2 Postfix 계산
연습문제
Chapter 07 큐
01 큐란
1 생활 속의 큐
2 큐의 개념과 원리
3 추상 데이터 타입 큐
02 리스트를 이용한 큐
1 리스트 큐의 객체 구조
2 리스트 큐의 작업과 구현
03 연결 리스트를 이용한 큐
1 연결 리스트 큐의 객체 구조
2 연결 리스트 큐의 작업과 구현
04 큐 응용: 좌우동형 문자열 체크
연습문제
Chapter 08 우선순위 큐: 힙
01 힙이란
1 우선순위 큐와 힙
2 힙과 완전 이진 트리
3 힙의 조건
4 힙 객체의 구조
02 힙 작업 알고리즘과 구현
1 원소 삽입
2 원소 삭제
3 힙 생성
4 기타 작업
5 힙 구현 전체 코드
03 힙 수행 시간
연습문제
Chapter 09 정렬
01 정렬이란
02 기본 정렬 알고리즘
1 선택 정렬
2 버블 정렬
3 삽입 정렬
03 고급 정렬 알고리즘
1 병합 정렬
2 퀵 정렬
3 힙 정렬
4 셸 정렬
04 데이터 특성을 잘 이용하는 정렬 알고리즘
1 계수 정렬
2 기수 정렬
3 버킷 정렬
05 정렬 알고리즘 간 성능 비교
연습문제
Chapter 10 색인과 이진 검색 트리
01 색인
1 색인이란
2 레코드, 키와 색인의 관계
3 추상 데이터 타입 색인
02 이진 검색 트리
1 검색 트리
2 이진 검색 트리
3 노드 객체의 구조
03 이진 검색 트리 알고리즘과 구현
1 검색
2 삽입
3 삭제
4 이진 검색 트리의 성질
5 순회
6 이진 검색 트리의 구현
연습문제
Chapter 11 균형 검색 트리
01 균형 검색 트리란
02 AVL 트리
1 AVL 트리란
2 노드 객체의 구조
3 균형이 깨진 AVL 트리의 수선
4 AVL 트리의 구현
03 레드-블랙 트리
1 레드-블랙 트리란
2 레드- 블랙 트리의 수선
04 B-트리
1 B-트리란
2 B-트리 알고리즘
3 B-트리의 작업 성능
연습문제
Chapter 12 해시 테이블
01 해시 테이블
1 해시 테이블이란
2 해시 테이블의 객체 구조
02 해시 함수
1 나누기 방법
2 곱하기 방법
03 충돌 해결
1 체이닝
2 개방 주소 방법
3 검색 시간
연습문제
Chapter 13 그래프
01 그래프란
02 그래프의 표현
1 인접 행렬
2 인접 리스트
3 인접 배열
4 인접 해시 테이블
03 너비 우선 탐색과 깊이 우선 탐색
1BFS
2DFS
04 최소 신장 트리
1 프림 알고리즘
2 크루스칼 알고리즘
3 안전성 정리
05 위상 정렬
06 최단 경로
1 다익스트라 알고리즘(음의 가중치를 허용하지 않는 경우)
2 벨만-포드 알고리즘(음의 가중치를 허용하는 경우)
연습문제
찾아보기