C C++로 배우는 자료구조론(IT CookBook 22)
이 책은 기초 다지기 → 기본 자료구조 → 알고리즘 소개 → 고급 자료구조 → 알고리즘 실례와 설계로 구성되어 있다. 각 장 내용은 서로 연관되어 있을 뿐만 아니라, 난이도를 점차 높은 수준으로 높여가고 있으므로 순서대로 학습하는 것이 바람직하다.
Couldn't load pickup availability
출판사 리뷰
출판사 리뷰
-. 쓰임새와 응용을 파고드는 자료구조 실용 학습서
-. 풍부한 일상 사례를 접목한 자료구조의 명쾌한 해설!
? 자료구조에 대한 명확한 이해와 구현 방법 제시
? 300여개의 그림을 통해 독자들의 이해를 도움
? 일상생활에서 일어날 수 있는 자료구조를 통해서 자료구조에 대한 특별한 재미와 흥미를 느낄 수 있게 함
? 객체지향 방법론, 추상 자료형, 포인트, 배열, 구조체 재귀호출 등 자료구조의 선이해에서 시작
? 가장 기본적인 자료구조인 리스트, 스택, 큐에 대한 이해
? 알고리즘과 알고리즘이 성립하기 위한 요건 제시
? 다양한 알고리즘을 통해서 자주 사용되는 알고리즘의 실례 확임
부/장별 내용 요약
이 책은 기초 다지기 → 기본 자료구조 → 알고리즘 소개 → 고급 자료구조 → 알고리즘 실례와 설계로 구성되어 있다. 각 장 내용은 서로 연관되어 있을 뿐만 아니라, 난이도를 점차 높은 수준으로 높여가고 있으므로 순서대로 학습하는 것이 바람직하다.
1부. 기초 다지기
자료구조와 알고리즘을 이해하기 위한 배경지식을 익히는 데 주력한다. 본문의 C++ 코드를 이해하려면 '1장. 객체지향 방법론'을 이해해야 한다. 특히 이 객체지향 방법론이 '2장. 추상 자료형' 개념과 어떻게 일치하는지 이해하는 것은 매우 중요하다. 3장에서는 포인터, 배열, 구조체를 학습한다. 기본 데이터 타입 위에서 복잡한 자료구조가 지어지기 때문에 이해하고 있어야 한다. '4장. 재귀호출'은 이 책 전체에서 일관되게 강조하는 논리다. 재귀호출을 빼고 알고리즘을 논할 수는 없다. 대표적인 분할정복 알고리즘이기 때문이다.
2부. 기본 자료구조
가장 기본적인 자료구조인 리스트, 스택, 큐에 대해서 알아본다. 여러 개의 데이터 집합을 관리하기 위한 자료형이 리스트다. 여기서 관리라는 말은 데이터를 삽입하거나, 삭제하거나, 검색하는 등 필요한 작업을 하는 것을 말한다. '6장. 스택', '7장. 큐' 역시 집합적 데이터를 관리하기 위한 것으로 리스트의 특수한 경우에 해당한다.
3부. 알고리즘 소개
알고리즘이 무엇인지 알아보고, 알고리즘이 되기 위해 갖춰야 할 요건을 제시한다. 알고리즘에서 가장 중요한 것은 정확성이다. 문제 하나를 해결할 수 있는 알고리즘이 여러 개 있을 때는 알고리즘 효율성이 선택 기준이 된다. 시간적 효율성 분석을 위한 도구가 빅 오 기호다. 8장은 빅 오 기호를 정의하고 이전 장에서 설명한 알고리즘 효율을 알아본다. 9장은 가장 많이, 그리고 가장 널리 알려진 알고리즘인 정렬 알고리즘을 설명하고, 알고리즘별로 효율을 알아본다.
4부. 고급 자료구조
10장에서는 비선형 구조인 트리를 살펴본다. '11장. 우선순위 큐'는 큐를 좀더 일반화 시킨 자료구조다. 시간을 포함하여 어떤 개념에도 우선순위를 부여할 수 있도록 한 것이다. '12장. 탐색 알고리즘'에서는 이진탐색을 비롯하여 기수탐색, 해시 등 주로 검색 효율을 높이기 위한 다양한 알고리즘과 자료구조를 살펴본다. '13장. 균형 탐색트리'는 이진탐색 트리의 균형을 일정하게 유지함으로써 작업효율을 높이기 위한 알고리즘과 자료구조를 설명한다.
5부. 알고리즘 실례와 설계
5부는 그래프 분야에 적용되는 다양한 알고리즘을 통해서 알고리즘 실례를 보인다. 위상정렬, 최소신장 트리, 최단 경로, 이행 폐쇄, 이중 연결, 유니언 파인드, 네트워크 플로우 알고리즘 등이 그것이다. 15장에서는 알고리즘을 설계하기 위한 패턴을 일곱 가지로 나눠 각 설계기법이 지난 장단점을 살펴본다. 더불어 계산이론에서 말하는 알고리즘 한계도 살펴본다. 단, 학습동기 유발을 위해서 패턴별로 설명하지 않고, 제기되는 문제를 중심으로 해당 문제에 필요한 패턴을 설명하기 한다.
목차
목차
1장. 객체지향 방법론
01. 객체지향 개념
02. 객체 클래스와 상속
03. C++와 객체지향
04. 절차적 설계와의 비교
생활 속의 자료구조
요약
연습문제
2장. 추상 자료형
01. 추상 자료형 개념
02. 추상 자료형과 C
03. 추상 자료형과 C++
생활 속의 자료구조
요약
연습문제
3장. 포인터, 배열, 구조체
01. 포인터
02. 참조 호출과 값 호출
03. 배열
04. 구조체
05. 활성화 레코드
06. 디버깅을 위한 매크로
07. 표준 라이브러리 헤더와 프로그래밍
생활 속의 자료구조
요약
연습 문제
4장. 재귀호출
01. 상징적 의미
02. 이진탐색
03. 재귀적 팩토리얼
04. 문자열 뒤집기
05. K번째 작은 수 찾기
06. 피보나치 수열
07. 재귀 함수의 작성
08. 재귀호출의 필요성
09. 꼬리 재귀
생활 속의 자료구조
요약
연습 문제
2부. 기본 자료구조
5장. 리스트
01. 추상 자료형 리스트
02. C에 의한 구현
03. C++에 의한 구현
04. 배열과 연결 리스트 비교
생활 속의 자료구조
요약
연습 문제
6장. 스택
01. 스택 개념
02. 추상 자료형 스택
03. C에 의한 스택 구현
04. C++에 의한 스택 구현
05. 리스트에 의한 스택 구현
06. 스택 응용 예
07. 깊이 우선 탐색
08. 스택과 재귀호출
09. 재귀호출 제거
생활 속의 자료구조
요약
연습 문제
7장. 큐
01. 큐 개념
02. 추상 자료형과 큐
03. C++ 연결 리스트에 의한 큐 구현
04. C++ 배열에 의한 큐 구현
05. 추상 자료형 리스트에 의한 큐 구현
06. 큐 응용 예
07. 너비우선 탐색
08. 덱
생활 속의 자료구조
요약
연습 문제
3부. 알고리즘 소개
8장. 알고리즘과 효율
01. 알고리즘
02. 알고리즘의 정확성
03. 정확성 증명
04. 알고리즘의 효율
05. 효율 분석 예
06. 분할상각 복잡도
07. 분할상각 복잡도
요약
연습 문제
9장. 정렬 알고리즘과 효율
01. 정렬의 분류
02. 선택 정렬
03. 버블 정렬
04. 삽입 정렬
05. 셸 정렬
06. 합병 정렬
07. 쾌속 정렬
08. 외부 정렬
09. 최선의 정렬효율
10. 버켓 정렬과 셈 정렬
11. 기수 정렬
생활 속의 자료구조
요약
연습 문제
4부. 고급 자료구조
10장. 트리
01. 트리 개요
02. 추상 자료형 트리
03. 배열에 의한 이진트리 구현
04. 포인터에 의한 이진트리 구현
05. 스택과 스레드 이진트리
06. 이진트리의 복사
07. 이진 탐색트리
생활 속의 자료구조
요약
연습 문제
11장. 우선순위 큐
01. 우선순위 큐 개요
02. 추상 자료형 우선순위 큐
03. 배열, 연결 리스트, 트리에 의한 구현
04. 힙에 의한 우선순위 큐 구현
생활속의 자료구조
요약
연습 문제
12장. 탐색 알고리즘
01. 키, 레코드, 탐색
02. 이진탐색
03. 보간탐색
04. 이진 탐색트리
05. 기수탐색
06. 해시
07. 자료구조의 선택
생활 속의 자료구조
요약
연습 문제
13장. 균형 탐색트리
01. AVL 트리
02. 스플레이
03. 2-3 트리04. 2-3-4 트리
05. 레드블랙 트리
06. B-트리
생활 속의 자료구조
요약
연습 문제
5부. 알고리즘 실례와 설계
14장. 그래프 알고리즘
01. 그래프
02. 추상 자료혈 그래프
03. 그래프 표현 방법
04. 그래프 순회
05. 위상정렬
06. 신장트리
07. 최소 신장트리
08. 최단 경로
09. 이행 폐쇄
10. 모든 쌍의 최단 경로
11. 이중연결 그래프
12. 유니언 파인드
13. 네트워크 플로우
생활 속의 자료구조
요약
연습 문제
15장. 알고리즘의 설계
01. 알고리즘의 분류
02. 저명인사의 문제
03. 거스름 돈 문제
04. 허프만 코딩
05. 배낭 문제
06. 최대 최소의 문제
07. 피보나치 수열 문제
08. 행렬의 연속 곱셈
09. 메디안보다 큰 것 찾기 문제
10. 색칠 문제
11. 과반수 찾기 문제
12. 8-퀸 문제
13. 할당 문제
14. 세일즈맨 여행 문제
15. 스케줄링 문제000
16. CNF-만족 문제
17. 3-컬러링 문제
18. P의 문제, NP의 문제
19. 소수 검증 문제, 인수 찾기 문제
20. 암호화
생활 속의 자료구조
요약
연습 문제
저자
저자
Your payment information is processed securely. We do not store credit card details nor have access to your credit card information.

