이미 소장하고 있다면 판매해 보세요.
|
PART 01 자료구조를 배우기 위한 준비
1.1 자료구조와 추상 데이터 타입 1.2 수행 시간의 분석 1.3 수행 시간의 점근 표기법 1.4 파이썬 언어에 대한 기본 지식 1.5 순환 요약 연습문제 PART 02 연결 리스트 2.1 단순 연결 리스트 2.2 이중 연결 리스트 2.3 원형 연결 리스트 요약 연습문제 PART 03 스택과 큐 3.1 스택 3.2 스택의 응용 3.3 큐 3.4 데크(Deque) 요약 연습문제 PART 04 트리 4.1 트리 4.2 이진 트리 4.3 이진 트리의 연산 4.4 이진 힙 요약 연습문제 PART 05 탐색 트리 5.1 이진 탐색 5.2 이진 탐색 트리 5.2.1 탐색 연산 5.2.2 삽입 연산 5.2.3 최솟값 찾기 5.2.4 최솟값 삭제 연산 5.2.5 삭제 연산 5.3 AVL 트리 5.3.1 AVL 트리의 회전 연산 5.3.2 삽입 연산 5.3.3 삭제 연산 5.4 2-3 트리, 레드 블랙 트리 5.4.1 2-3 트리 5.4.2 레드 블랙 트리 5.5 B-트리 5.5.1 탐색 연산 5.5.2 삽입 연산 5.5.3 삭제 연산 5.5.4 B-트리의 확장 요약 연습문제 PART 06 해시 테이블 6.1 해시 테이블 6.2 해시 함수 6.3 개방 주소 방식 6.3.1 선형 조사 6.3.2 이차 조사 6.3.3 랜덤 조사 6.3.4 이중 해싱 6.4 폐쇄 주소 방식 6.5 기타 해싱 6.6 해시 방법의 성능 비교 요약 연습문제 PART 07 정렬 7.1 선택 정렬 7.2 삽입 정렬 7.3 쉘 정렬 7.4 힙 정렬 7.5 합병 정렬 7.6 퀵 정렬 7.7 기수 정렬 7.8 외부 정렬 요약 연습문제 PART 08 그래프 8.1 그래프 8.1.1 그래프 용어 8.1.2 그래프 자료구조 8.2 그래프 탐색 8.2.1 깊이 우선 탐색 8.2.2 너비 우선 탐색 8.3 기본적인 그래프 알고리즘 8.3.1 연결 성분 찾기 8.3.2 위상 정렬 8.4 최소 신장 트리 8.4.1 Kruskal 알고리즘 8.4.2 Prim 알고리즘 8.4.3 Sollin 알고리즘 8.5 최단 경로 알고리즘 8.5.1 Dijkstra 알고리즘 8.5.2 Floyd-Warshall 알고리즘 요약 연습문제 부록 Ⅰ. 파이썬 메모리 Ⅱ. 이중 피벗 퀵 정렬 Ⅲ. Tim Sort Ⅳ. 정렬의 하한 Ⅴ. Cut Property |
양성봉의 다른 상품
|
이 책의 특징
독자들의 쉬운 이해를 위해 대부분의 자료구조를 다음의 다섯 단계에 따라 설명한다. 1. 주어진 자료구조에 대한 이해 2. 핵심 아이디어 소개 3. 예제 4. 파이썬 프로그램 5. 수행 시간 분석 기본적으로 각 자료구조의 필요성을 소개하고, 자료구조를 이해하는데 도움이 되는 핵심 아이디어를 살펴본다. 또한 자료구조에 대한 예제를 통해 이해를 도우며, 파이썬(Python 3) 프로그램으로 구현한 자료구조를 제시하고, 수행 시간을 분석한다. 아울러 자료구조의 응용 및 활용 분야를 살펴보고, 대부분의 파이썬 프로그램을 PyCharm 통합 개발 환경에서 실제로 실행시킨 결과 화면 또한 보여준다. 단, 몇몇 자료구조들에 대한 프로그램은 너무 길어 생략하였고 개념 위주로 서술하였다 개정판에는 230여 개의 객관식과 주관식 연습문제가 추가되었고, 대부분 각 Part의 내용에 대한 정확한 이해를 확인할 수 있도록 출제되었다. 적지 않은 수의 문제는 IT 기업의 입사 인터뷰 문제로도 손색없고, 또 기출 문제들도 포함되어 있다. 이 책의 내용 Part 1 자료구조를 배우기 위한 준비에서는 자료구조와 추상 데이터 타입, 수행 시간의 분석, 수행 시간의 점근 표기법, 파이썬 언어의 기본 지식, 그리고 순환에 대해 살펴본다. 단, 본서에서 다루는 파이썬 언어의 기본 지식은 본서에 제공된 파이썬 프로그램을 이해하기 위해 필요한 파이썬의 일부 구문, 함수 등만을 포함하고 있다. Part 2 리스트에서는 단순 연결 리스트, 이중 연결 리스트, 원형 연결 리스트를 설명한다. 또한 메모리 효율적인 이중 연결 리스트를 소개한다. Part 3 스택과 큐에서는 스택, 큐, 데크 자료구조를 다룬다. Part 4 트리에서는 일반적인 트리, 이진 트리, 이진 트리에서의 순회 및 기타 기본적인 연산, 이진 힙을 각각 소개한다. Part 5 탐색 트리에서는 이진 탐색 트리, AVL 트리, 2-3 트리, 레드 블랙 트리, B-트리를 소개하며, 특히 이진 탐색 트리, AVL 트리는 파이썬 프로그램을 통하여 상세히 설명한다. Part 6 해시 테이블에서는 해시 함수, 충 돌 해결 방법으로 선형 조사, 이차 조사, 랜덤 조사, 이중 해싱, 체이닝을 배우고, 새로운 충돌 해결 방식인 2-방향 체이닝(Two-Way Chaining), 뻐꾸기 해싱(Cuckoo Hashing)을 소개하며, 재해싱과 동적 해싱을 각각 살펴본다. Part 7 정렬에서는 기본적인 정렬 알고리즘인 선택 정렬, 삽입 정렬을 다루고, 이보다 효율적인 쉘 정렬, 합병 정렬, 퀵 정렬, 힙 정렬을 살펴보며, 특정 환경에서 사용되는 기수 정렬과 외부 정렬을 소개한다. 또한 비교적 최근에 소개되었고 자바의 시스템 정렬로 활용되는 이중 피벗 퀵 정렬(Dual Pivot Quick Sort)과 파이썬, 자바 SE 7 이후 버전, 안드로이드의 시스템 정렬로 채택된 Tim Sort는 부록에서 소개한다. Part 8 그래프에서는 깊이 우선 탐색, 너비 우선 탐색을 공부하고, 기본적인 그래프 알고리즘인 연결 성분 찾기와 위상 정렬에 대해 살펴본다. 또한 Kruskal, Prim, Sollin의 최소 신장 트리 알고리즘을 소개하고, Dijkstra와 Floyd-Warshall 최단 경로 알고리즘을 소개한다. 부록에서는 파이썬 메모리를 살펴보며, 이중 피벗 퀵 정렬(Dual Pivot Quick Sort)과 Tim Sort를 살펴보며, 정렬 문제의 하한을 알아보고, 최소 신장 트리 알고리즘들이 항상 정확한 해를 찾는 지를 Cut Property의 증명을 통하여 알아본다. |