프로그래밍 관련 책

디딤돌 자료구조와 알고리즘 C++

언제나휴일 2016. 4. 6. 17:33
반응형

디딤돌 자료구조와 알고리즘 C++


책 소개

자료구조는 자료를 메모리에 표현하는 구조를 말하며 크게 선형 자료구조와 비 선형 자료구조로 나눠요. 


선형 자료구조에는 같은 종류의 자료를 연속적인 메모리에 관리하는 배열과 데이터와 링크로 구성하는 노드들의 선형 집합인 연결리스트가 있어요. 그리고 임시적으로 자료를 보관하는 버퍼로 가장 최근에 보관한 자료를 꺼내주는 스택(Last In First Out)과 가장 먼저 보관한 자료를 꺼내주는 큐(First In First Out)도 선형 자료구조인 배열이나 연결리스트를 이용한 잘 알려진 버퍼입니다.


비 선형 자료구조에는 나무의 뿌리처럼 자료를 보관하는 모습을 계층적으로 표현할 수 있는 트리와 정점과 간선으로 표현하는 그래프 등이 있어요.


이 책에서는 이러한 자료구조들을 소개하고 표준 템플릿 라이브러리인 STL을 모델 삼아 구현해 볼거예요.


STL(Standard Template Library, 표준 템플릿 라이브러리)은 개체들을 보관하기 위한 다양한 자료구조와 이들 자료구조에 보관된 개체들을 반복적으로 순회할 수 있게 해 주는 반복자, 사용자에서 정의한 코드를 입력 인자로 전달받아 처리할 수 있게 추상화한 함수 개체, 다양한 문제 해결 방법이 구현된 함수들로 구성된 알고리즘 등으로 구성되어 있어요.


이 책에서는 STL에 제공되는 일부 자료구조와 반복자, 함수 개체 및 알고리즘을 소개할게요. 사용 방법을 다루는 동시에 STL에 정의한 형식을 모델 삼아 직접 만들어 보는 실습도 할 거예요.


자료구조를 다루는 수많은 책에서는 기본 형식의 자료를 보관하는 형태의 예를 들거나 추상적인 설명을 하는 것과 다르게 이 책에서는 STL에 제공하는 것처럼 설계와 구현을 함으로써 어떠한 형식이라도 보관할 수 있게 할게요.


특히 대학 강의에서 중요하게 다루기는 하지만 실제 구체적인 코드로 구현해 본 적이 없거나 구현하기 힘든 다양한 알고리즘을 구체적으로 구현하는 실습을 통해 프로그래밍 능력을 배양할 수 있게 기술하고 있어요.

저자 소개

저자 장문석

약력

2003년~ 2016년 3월 현재 선문비트교육센터 담임강사

2010년 응용 소프트웨어의 접근성에 대한 평가 도구 개발 논문 발표

소프트웨어 접근성 평가 도구 SAVE개발

2010년06월01일~2012년 05월 31일 QoLT 산업기술기반 지원센터 구축 사업 연구과제

집필 저서

IT 전문가로 가는 길 Escort C언어

IT 전문가로 가는 길 Escort C++

IT 전문가로 가는 길 Escort C#

IT 전문가로 가는 길 Escort 자료구조와 STL

IT 전문가로 가는 길 Escort GoF의 디자인 패턴

IT 전문가로 가는 길 Escort GoF의 디자인 패턴 C#

IT 전문가로 가는 길 Escort Pro 나만의 웹 검색 엔진 만들기

STEP BY STEP STEP 1 스택 계산기 - C언어 (컴파일러 개념 적용)

삶의 질 향상을 위한 소프트웨어 자동화 기술, UI 자동화

디딤돌 C언어

디딤돌 C++

C언어 표준 라이브러리 함수 가이드

원격 제어 프로그램 with C#


목차

1.소개

1.1 자료구조와 STL 소개

1.2 알고리즘 소개

1.3 점근식 표기

1.3.1 Θ(세타)

1.3.2 O(빅 오)

1.3.3 Ω(오메가)

1.3.4 o(리틀 오)

1.3.5 ω(리틀 오메가)

2. 반복 알고리즘

2.1 순차 정렬(Sequential Sort)

2.1.1 순차 정렬 알고리즘 분석

2.1.2 공통으로 사용할 코드 구현

2.1.3 순차 정렬 알고리즘 구현

2.2 거품 정렬

2.2.1 거품 정렬 알고리즘 분석

2.2.2 거품 정렬 알고리즘 구현

2.3 선택 정렬

2.3.1 선택 정렬 알고리즘 분석

2.3.2 선택 정렬 알고리즘 구현

2.4 삽입 정렬

2.4.1 삽입 정렬 알고리즘 분석

2.4.2 삽입 정렬 알고리즘 구현

3. 선형 자료구조

3.1 배열과 vector

3.1.1 이 책에서 공통으로 사용하는 것들

3.1.2 vector에 순차적으로 보관

3.1.3 vector에 순차적으로 보관 예제

3.1.4 vector에 특정 키 순으로 보관

3.1.5 vector를 인덱스 연산으로 사용

3.1.6 vector를 인덱스 연산으로 사용 예제

3.2 연결리스트와 list

3.2.1 단순 연결리스트 만들기

3.2.2 이중 연결리스트 만들기

3.2.3 list 사용

3.3 스택

3.4 큐

3.5 큐를 이용한 스케쥴러 시뮬레이션

4. vector 만들기

4.1 vector 구현

4.2 vector와 find_if 코드

5. list 만들기

5.1 list 구현

5.2 list 코드

6. 재귀 알고리즘

6.1 하노이 타워

6.1.1 하노이 타워 성능 분석

6.2 퀵 정렬

6.2.1 퀵 정렬 알고리즘 성능 분석

6.2.2 퀵 정렬 알고리즘 구현

6.3 이진 탐색

6.3.1 순차 탐색과 이진 탐색의 성능 비교

7. 이진 탐색 트리

7.1 트리의 용어

7.2 이진 탐색 트리 개요

7.3 이진 탐색 트리 설계 및 사용

7.4 이진 탐색 트리 구현

7.5 STL의 맵 사용

7.5.1 STL map 사용 방법 1

7.5.2 STL map 사용 방법 2

8. STL 실습 - 장르별 도서 관리 프로그램

8.1 프로토 타이핑

8.2 장르 추가 및 전체 장르 보기

8.3 도서 추가

8.4 전체 도서 보기 및 전체 보기

8.5 도서 검색 및 특정 장르 보기

8.6 도서 삭제 및 소멸

8.7 장르별 도서 관리 프로그램 코드

9. 기타 이진 트리 및 분할 정복

9.1 힙 정렬 알고리즘

9.1.1 힙 정렬 알고리즘

9.1.2 힙 정렬 알고리즘 성능 분석

9.1.3 힙 정렬 알고리즘 구현

9.2 스택을 이용한 수식 파서

9.3 수식 파서 트리

9.3.1 수식 문법 정규화

9.3.2 프로토 타이핑

9.3.3 토큰 구현

9.3.4 어휘 분석기와 구문 분석기 구현

9.3.5 수식 파서 트리 구현

9.3.6 수식 파서 트리를 이용한 계산기 코드

9.4 병합 정렬

9.4.1 병합 정렬 알고리즘 성능 분석

9.4.2 병합 정렬 알고리즘 구현

10. 동적 프로그래밍

10.1 피보나치 수열

10.2 순열 문제

10.2.1 순열 문제 구현

10.2.2 순열 문제 소스 코드

10.3 인접 행렬을 이용한 깊이 우선 탐색

10.3.1 그래프 구현

10.3.2 깊이 우선 탐색(인접 행렬) 구현

10.3.3 깊이 우선 탐색(인접 행렬) 코드

10.4 깊이 우선 탐색(정점과 간선 그래프)

11. 너비 우선 탐색

11.1 너비 우선 탐색(인접 행렬) 구현

11.2 너비 우선 탐색(정점과 간선 그래프)

11.3 다익스트라 알고리즘

11.3.1 다익스트라 알고리즘 구현

11.3.2 다익스트라 알고리즘 코드

12. 탐욕 알고리즘

12.1 거스름 돈

12.2 SJF 알고리즘

12.3 프림 알고리즘

12.3.1 프림 알고리즘 구현

12.3.2 프림 알고리즘 소스 코드

12.4 크루스칼 알고리즘

12.4.1 크루스칼 알고리즘 구현

12.4.2 크루스칼 알고리즘 소스 코드




판매유형: epub

판매가격: 10,000원

판매처: 유페이퍼


반응형