이미 소장하고 있다면 판매해 보세요.
|
1장 재귀 함수
1.1 재귀 함수: 자신을 호출하는 신기한 함수 __1.1.1 재귀 함수로 팩토리얼 구현하기 __1.1.2 스택 프레임으로 재귀 함수 이해하기 __1.1.3 순열을 재귀 함수로 구현하기: 재귀 트리 사용하기 2장 성능 분석 2.1 자료 구조 성능 이야기: 빅오 __2.1.1 알고리즘 성능 분석 __2.1.2 성능을 비교하는 방법: 빅오 __2.1.3 방심은 금물!: 빅오의 함정 2.2 추상 데이터 타입이란 3장 배열: 변수가 한곳에 모여 있으면 빠르다! 3.1 동적 배열이란 3.2 지역성의 원리와 캐시 3.3 인덱싱: 데이터에 빠르게 접근한다! 3.4 동적 배열에서 데이터의 삽입과 삭제 1 3.5 동적 배열에서 데이터의 삽입과 삭제 2 4장 연결 리스트: 삽입과 삭제를 빠르게 할 수 없을까? 4.1 연결 리스트 이해하기 4.2 동적 배열과 연결 리스트 4.3 더미 이중 연결 리스트 5장 스택과 큐, 그리고 덱 5.1 스택: 데이터를 차곡차곡 쌓는다 __5.1.1 스택 구현: 동적 배열을 이용하여 구현하기 5.2 큐: 데이터로 줄 세우기 __5.2.1 큐 구현 1: 동적 배열을 단순하게 사용해서 구현하기 __5.2.2 큐 구현 2: 원형 큐로 구현하기 5.3 덱: 스택으로도 큐로도 사용할 수 있는 덱 6장 그래프: 관련 있는 데이터 연결하기 6.1 그래프 용어 정리 6.2 그래프를 표현하는 두 가지 방법: 도시와 도시를 이어 보자 6.3 그래프의 모든 노드 방문: 모든 도시를 여행해 보자 __6.3.1 너비 우선 탐색: 인근 도시부터 여행하기 __6.3.2 깊이 우선 탐색: 한 방향으로 쭉 따라 여행하기 7장 트리: 정말 쓸 데가 많은 자료 구조 7.1 트리 용어 정리 7.2 이진 트리의 순회: 모든 노드 방문하기 __7.2.1 전위 순회 __7.2.2 중위 순회 __7.2.3 후위 순회 __7.2.4 레벨 순서 순회 8장 다양한 트리 1: 이진 탐색 트리 8.1 이진 탐색 알고리즘 8.2 딕셔너리의 내부 구현 8.3 이진 탐색 트리 8.4 이진 탐색 트리의 구현 8.5 이진 탐색 트리의 단점 9장 다양한 트리 2: 레드 블랙 트리 9.1 어떻게 균형을 맞출 것인가? 9.2 레드 블랙 트리 9.3 레드 블랙 트리의 구현 10장 다양한 트리 3: B 트리 10.1 메모리 계층 구조 10.2 데이터베이스에 데이터 삽입, 탐색, 삭제해 보기 10.3 B 트리 10.4 B 트리에 키 삽입·삭제하기 10.5 B+ 트리 10.6 B 트리로 인덱스 만들기 11장 다양한 트리 4: 힙과 우선순위 큐 11.1 힙 11.2 우선순위 큐 12장 다양한 그래프 알고리즘 1: 위상 정렬 12.1 위상 정렬 13장 다양한 그래프 알고리즘 2: 최소 비용 신장 트리 13.1 탐욕 알고리즘 13.2 크루스칼 알고리즘 __13.2.1 그래프의 표현 __13.2.2 분리 집합: 사이클이 형성되는지 어떻게 확인하지? __13.2.3 크루스칼 알고리즘 구현 13.3 프림 알고리즘 __13.3.1 가중치가 가장 작은 에지를 찾는 방법 __13.3.2 프림 알고리즘 구현 14장 다양한 그래프 알고리즘 3: 최단 경로 14.1 데이크스트라 알고리즘 14.2 BFS와 프림 알고리즘, 그리고 데이크스트라 알고리즘 15장 자료 구조가 적용된 실제 사례 15.1 생산자 -소비자 패턴: 큐 15.2 자바스크립트 엔진: 스택과 큐 |
|
무더운 여름날, 더위를 피해 『Fundamentals of Data Structures in C』와 『Introduction To
Algorithms』를 손에 들고 카페에 자주 갔던 기억이 납니다. 오래 전 일이지만 책과 씨름하면서 쌓인 한숨은 쉽게 잊히지 않습니다. 다른 전공을 공부하다가 프로그래머의 길을 걷기 시작하면서 가장 먼저 느낀 점은 기본 지식의 부재였습니다. 부족한 지식을 쌓기 위해 가장 먼저 자료 구조 책을 펼쳐 들었지만 처음에는 시작할 엄두를 내지 못했습니다. 한 문장을 여러 번 읽어도 쉽게 와 닿지 않았습니다. 전공자도 아니고 개발 경력도 길지 않지만 그럼에도 책을 써야겠다고 결심한 계기는 같은 경험을 하고 있을 누군가에게 조금이라도 도움을 주고 싶었기 때문입니다. 이 책을 읽으면 쉽게 자료 구조를 공부할 수 있다는 이야기가 아닙니다. 제가 하고 싶은 이야기는 아직 시작할 엄두를 내지 못하는 누군가에게 “어려워도 한번쯤 해 볼만 해.”라는 격려입니다. - 지은이의 말 중에서 |
|
재귀 함수부터 다양한 그래프 알고리즘까지!
핵심 개념과 동작 원리로 이해하는 자료 구조 첫걸음! 유명한 자료 구조 책들이 여러 권 있지만, 방대한 양에 읽다 지치기 쉽다. 그래서 자료 구조를 좀 더 쉽게 공부하기 위해 단순히 자료 구조의 구현에 집중하기보다는 “인덱스는 어떻게 작동하기에 데이터베이스의 성능을 좋게 만들 수 있을까?”라는 한 가지 질문을 던져 놓고 이 질문의 답을 찾아가는 과정을 담았다. 모든 자료 구조를 다루진 않지만 이 과정에서 다룰 수 있는 여러 가지 자료 구조를 배우며, 개념을 확장해 나가는 방식으로 설명한다. 빅오, 재귀 함수에서부터 다양한 그래프 알고리즘까지 그림 184개로 필수 자료 구조의 핵심 개념을 익힌 후 파이썬으로 구현한 코드도 직접 확인하고 실행해 볼 수 있다. 또한, 실제 자료 구조를 어디에 어떻게 활용할 수 있는지도 엿볼 수 있다. 이 책이 자료 구조를 학습하려는 분들에게 시작점이자 다른 유명한 자료 구조 책을 볼 수 있게 해주는 징검다리 역할을 해줄 것이다. 인덱스는 어떻게 작동하기에 데이터베이스의 성능을 좋게 만들 수 있을까? 이 질문에 대한 답을 찾아가는 과정을 담았다! 유명한 자료 구조 책들이 여러 권 있지만 방대한 양에 읽다 지치기 쉽다. 그래서 자료 구조를 좀 더 쉽게 공부하기 위해 단순히 자료 구조의 구현에 집중하기보다는 “인덱스는 어떻게 작동하기에 데이터베이스의 성능을 좋게 만들 수 있을까?”라는 한 가지 질문을 던져 놓고 이 질문의 답을 찾아가는 과정을 담았다. 이 과정에서 여러 가지 자료 구조를 배우며 개념을 확장해 나가는 방식으로 설명한다. 재귀 함수부터 그래프 알고리즘까지! 1~8장은 재귀 함수, 성능 분석, 배열, 연결 리스트, 스택, 큐와 같은 자료 구조 기본 내용을 다루며, 자료 구조를 제대로 이해하기 위해 메모리, 그중에서도 지역성의 원리, 메모리 계층 구조에 대해서도 함께 설명한다. 책의 핵심인 9~10장은 레드 블랙 트리와 B 트리를 자세하게 다룬다. 마지막으로 11~14장은 좀 더 다양한 트리와 그래프 알고리즘을 설명하는데, 이 내용은 어렵다면 나중에 천천히 공부하면 된다. 10장까지 이해한 것만으로도 이 책의 목적은 달성한 것이다. 그림 184개와 파이썬 코드로 배운다! 그림으로 핵심 개념을 설명하고, 이를 파이썬 코드로 어떻게 구현할 수 있는지 보여 준다. 또한, 마지막 장에서는 실제 자료 구조가 활용 |