1장 리스트, 스택, 큐
1.1 들어가며
1.2 연속된 자료 구조와 연결된 자료 구조
__1.2.1 연속된 자료 구조
__1.2.2 연결된 자료 구조
__1.2.3 비교
__1.2.4 C 스타일 배열의 제약 사항
1.3 std::array
__1.3.1 연습 문제 1: 동적 크기 배열 구현하기
__1.3.2 연습 문제 2: 빠르고 범용적인 데이터 저장 컨테이너 만들기
1.4 std::vector
__1.4.1 std::vector - 가변 크기 배열
__1.4.2 std::vector 할당자
1.5 std::forward_list
__1.5.1 std::forward_list에서 원소 삽입과 삭제
__1.5.2 std::forward_list의 기타 멤버 함수
__1.5.3 연습 문제 3: 연결 리스트에서 remove_if( 함수를 이용한 조건부 원소 삭제
1.6 반복자
__1.6.1 연습 문제 4: 다양한 반복자에서 이동하기
__1.6.2 연습 문제 5: 기본적인 사용자 정의 컨테이너 만들기
__1.6.3 실습 문제 1: 음악 재생 목록 구현하기
1.7 std::list
__1.7.1 std::list 멤버 함수
__1.7.2 연습 문제 6: std::list의 삽입 또는 삭제 함수 사용하기
__1.7.3 양방향 반복자
__1.7.4 반복자 무효화
__1.7.5 실습 문제 2: 카드 게임 시뮬레이션
1.8 std::deque
__1.8.1 덱의 구조
1.9 컨테이너 어댑터
__1.9.1 std::stack
__1.9.2 std::queue
__1.9.3 std::priority_queue
__1.9.4 어댑터 반복자
1.10 벤치마킹
__1.10.1 실습 문제 3: 사무실 공유 프린터의 인쇄 대기 목록 시뮬레이션
1.11 나가며
2장 트리, 힙, 그래프
2.1 들어가며
2.2 비선형 문제
__2.2.1 계층적 문제
__2.2.2 순환
이론과 문제 풀이를 한 번에!
C++ 자료 구조에서 그래프 알고리즘, 동적 계획법까지!
다양한 알고리즘 이론을 배우고 최신 C++로 구현해보자
C++ 자료 구조부터 그리디 알고리즘, 분할 정복 알고리즘, 그래프 알고리즘, 동적 계획법과 같은 다양한 알고리즘을 설명한다. 전통적인 자료 구조와 C++ STL 클래스 구현 사이의 관계를 설명해 주어진 문제에 가장 적합한 자료 구조를 선택할 수 있도록 도와준다. 책의 모든 코드는 C++ 14로 구현되어 있다.
44개 연습 문제와 23개 실습 문제로 익히자
다양한 알고리즘을 설명하기 위해 단계별 문제 풀이로 직접 코딩해보며 실용적으로 익힐 수 있게 했다. 서로 다른 자료 구조가 이론적으로는 비슷한 성능으로 동작해야 하지만 실제 컴퓨터에서 실행될 때는 매우 큰 차이가 발생할 수 있다는 것을 연습 문제 풀이로 보여준다. 또한, 익힌 내용은 실습 문제로 한 번 더 정리할 수 있게 했다. 코딩 테스트를 준비하는 취업 준비생과 최신 C++ 문법으로 알고리즘을 새로 공부하려는 사람들에게 추천한다.
자주 출제되는 주요 알고리즘 위주로 배우자
코딩 테스트도 전략이 필요하다. 다양한 알고리즘이 있지만, 그중 코딩 테스트에 자주 출제되는 주요 알고리즘으로 구성했다. 분할 정복, 그래프 탐색, 최단 경로, 동적 계획법 등 많이 출제되는 알고리즘에 집중하자.