상세정보

d

d

dd
dd

자료구조 입문

알고리즘과 그림으로 이해하고 C로 구현하는
우수과학도서
지은이 |   이상진
옮긴이 |   
발행일 |   2016-06-10
페이지 |   640가격 |   28,000원
ISBN |   978-89-6540-125-4
분야 |   자료구조, 알고리즘, 컴퓨터 일반
dddddd

자료구조 입문

알고리즘과 그림으로 이해하고 C로 구현하는
우수과학도서
지은이 |   이상진
옮긴이 |   
발행일 |   2016-06-10
페이지 |   640
가격 |   28,000원
ISBN |   978-89-6540-125-4
분야 |   자료구조, 알고리즘, 컴퓨터 일반
ddd
ddd
어떻게 개발해야 하나 고민하는 모든 이에게

자료구조를 이해하고 구현하는 길을 알려드립니다

자료구조는 자료를 효율적으로 저장하는 방법을 말합니다. 자료구조의 기본 골격을 이해함으로써 어떻게 하면 자료를 낭비하지 않고 저장할 수 있는지를 알 수 있습니다. 이뿐만 아니라 자료구조에 대한 이해를 갖춘 개발자만이 원하는 대로 프로그램을 만들 수 있습니다. 즉, 자료구조는 새내기 개발자의 개발 능력 향상을 위한 가장 중요한 지식 체계입니다. 이것은 필자의 개인적 경험이면서 동시에 저와 함께한 많은 개발자의 공통된 의견이기도 합니다. 그러므로 이 책은 자료구조를 어떻게 개발해야 할지 고민하는 여러분을 위해 명확하고 체계적으로 관련 지식을 익힐 수 있도록 안내합니다.

간결한 개념 전달과 정확한 소스 구현

이 책은 이제 막 개발을 시작하는 초보 개발자를 주 대상으로 합니다. 여기서 말하는 '초보 개발자'란 학교에서 프로그래밍을 막 시작한 대학생 혹은 중고등학생일 수도 있습니다. 물론 프로그램 개발사에서 개발을 막 시작하는 사람일 수도 있습니다. 이 책은 간결한 개념 전달과 정확한 소스 구현이라는 두 가지에 중점을 두고 집필했습니다. 따라서 시작하는 여러분에게 자료 구조의 개념을 명확하게 갖추도록 하는 좋은 동반자가 될 것이라고 자신 있게 말씀드릴 수 있습니다. 왜냐하면, 모쪼록 이 책을 통해 어렵게만 느껴지던 자료구조를 이해하고 직접 구현하면서 개발의 즐거움을 느껴보시기 바랍니다.


- 출판사 리뷰 -

누구를 위한 책인가?
이 책은 프로그램을 개발하려는 모든 분을 위해 쓰였습니다. 자료구조를 통해 프로그램 개발 능력을 향상시키고 싶은 분들이 주 대상 독자가 됩니다. 이를 위해 이 책은 자료구조의 기본 개념을 쉽고 간결한 설명으로 제시합니다. 또한, 자료구조에 대한 예제 소스를 제공하여 실제 개발 능력을 향상시키고자 합니다.

선수 연계 과목
이 책은 C 언어를 기본 구현 언어로 사용합니다. C 언어에 대한 기초 문법 및 개발 도구인 Visual Studio의 간단한 사용 방법을 익힌 분들이라면 충분히 이 책을 시작할 수 있습니다. C 언어의 함수, 구조체 및 포인터를 알고 있으신 분이라면 이 책을 읽을 수 있습니다. 혹시 아직 C 언어를 공부하지 않으신 분이라면, 프리렉 출판사에서 발간한 《C 언어 정복 리얼 교과서》라는 책을 추천합니다.

이 책의 구성

이 책의 각 장은 다음의 흐름으로 이루어져 있습니다.

일상생활의 예를 통해서 자료구조의 기본 개념을 설명합니다. 왜 이런 자료구조가 필요한지 필요성을 이야기하고, 이에 대해서 어떤 개념이기 때문에 대안이 될 수 있는지 설명합니다.

간단 요약
각 장의 자료구조에 대한 핵심 개념을 요약합니다.

사용 시나리오
앞서 정의된 자료구조를 실제 사용한다면 어떠한 시나리오에 의해 사용될 수 있는지, 그 사용 과정을 예를 통해 설명합니다. 자료구조의 사용 과정을 살펴보면서, 독자 여러분은 자료구조를 실제 이렇게 사용할 수 있다는 것을 알게 됩니다.

추상 자료형
자료구조를 구현하기에 앞서, 먼저 각 자료구조에 대한 ‘추상 자료형’을 정의합니다. 추상 자료형은 1장에서 배우게 되는데, 일종의 설계도라고 볼 수 있습니다. 추상 자료형을 정의함으로써 독자 여러분은 자연스럽게 다음 단계인 자료구조의 구현 단계로 나아갈 수 있습니다.

구현
앞서 설명한 자료구조의 개념을 실제 소스로 구현하는 단계입니다. 자료구조의 개념이 실제 소스로 어떻게 구현되는지 주의해서 살펴보아야 합니다. 처음에는 구조체에 대한 설명으로 시작하여, 자료구조의 각 연산 별로 소스를 설명합니다. 보통 소스의 제일 마지막은 앞서 언급한 사용 시나리오를 실제 구현하는 예제 소스로 이루어집니다. 이러한 예제 소스를 통해, 내가 구현한 자료구조를 어떻게 사용할 수 있는지 응용 능력을 키우게 됩니다.

여기서 잠깐
본문의 중간마다 ‘여기서 잠깐’이라는 참고 내용이 있습니다. 말 그대로 본문의 내용을 쉽게 이해하기 위한 참고 자료가 됩니다.

연습 문제
각 장이 끝날 때마다 본문에서 익힌 핵심적인 내용을 문제를 통해 확인하게 됩니다. 또한, 문제 중에서는 개념을 확인하는 문제뿐 아니라 소스를 통해 구현하는 문제도 있으니, 이 문제들을 통해 개념을 새롭게 정리하고, 개발 실력을 점검할 수 있습니다.
Chapter 1 자료구조의 시작
__1. 자료구조란?
__2. 자료구조의 분류
__3. 자료구조와 알고리즘

Chapter 2 배열 리스트
__1. 리스트란?
__2. 리스트 사용 시나리오
__3. 리스트의 추상 자료형
__4. 배열 리스트란?
__5. 배열 리스트의 구현

Chapter 3 연결 리스트
__1. 연결 리스트
__2. 연결 리스트의 구현
__3. 연결 리스트 관련 함수들

Chapter 4 연결 리스트의 확장
__1. 원형 연결 리스트
__2. 이중 연결 리스트
__3. 연결 리스트의 응용: 다항식

Chapter 5 스택
__1. 스택이란?
__2. 스택의 사용 시나리오
__3. 스택의 추상 자료형
__4. 배열로 구현한 스택
__5. 포인터로 구현한 연결 스택

Chapter 6 스택의 적용
__1. 역순인 문자열 만들기
__2. 수식에서 괄호 검사하기
__3. 후위 표기법으로 수식 계산하기
__4. 중위 표기 수식을 후위 표기 수식으로 변환하기

Chapter 7 큐
__1. 큐란?
__2. 큐의 사용 시나리오
__3. 큐의 추상 자료형
__4. 배열로 구현한 선형 큐
__5. 배열로 구현한 원형 큐
__6. 포인터로 구현한 큐

Chapter 8 재귀 호출
__1. 재귀 호출이란?
__2. 재귀 호출과 반복 호출

Chapter 9 트리
__1. 트리란?
__2. 이진 트리
__3. 이진 트리의 추상 자료형
__4. 배열로 구현한 이진 트리
__5. 포인터로 구현한 이진 트리
__6. 이진 트리의 순회

Chapter 10 히프
__1. 히프란?
__2. 히프의 추상 자료형
__3. 최대 히프에서의 추가 연산
__4. 히프에서의 제거 연산
__5. 히프의 구현
__6. 히프의 응용

Chapter 11 그래프
__1. 그래프란?
__2. 그래프의 추상 자료형
__3. 인접 행렬로 구현한 그래프
__4. 인접 리스트로 구현한 그래프
__5. 무방향 그래프의 구현
__6. 그래프 탐색

Chapter 12 검색
__1. 순차 검색
__2. 색인 순차 검색
__3. 이진 검색
__4. 이진 검색 트리
이상진

현 ㈜소만사 연구소 개발실장
삼성네트웍스, 핸디소프트 근무
서울대학교 정보시스템 전공 석사
서울대학교 정보시스템 전공 박사
숭실대, 인하대 출강
저서: 《열혈강의 자료구조》, 《C언어 정복 리얼 교과서》, 《정보 보안 가이드북》

어떻게 개발해야 하나 고민하는 모든 이에게

자료구조를 이해하고 구현하는 길을 알려드립니다

자료구조는 자료를 효율적으로 저장하는 방법을 말합니다. 자료구조의 기본 골격을 이해함으로써 어떻게 하면 자료를 낭비하지 않고 저장할 수 있는지를 알 수 있습니다. 이뿐만 아니라 자료구조에 대한 이해를 갖춘 개발자만이 원하는 대로 프로그램을 만들 수 있습니다. 즉, 자료구조는 새내기 개발자의 개발 능력 향상을 위한 가장 중요한 지식 체계입니다. 이것은 필자의 개인적 경험이면서 동시에 저와 함께한 많은 개발자의 공통된 의견이기도 합니다. 그러므로 이 책은 자료구조를 어떻게 개발해야 할지 고민하는 여러분을 위해 명확하고 체계적으로 관련 지식을 익힐 수 있도록 안내합니다.

간결한 개념 전달과 정확한 소스 구현

이 책은 이제 막 개발을 시작하는 초보 개발자를 주 대상으로 합니다. 여기서 말하는 '초보 개발자'란 학교에서 프로그래밍을 막 시작한 대학생 혹은 중고등학생일 수도 있습니다. 물론 프로그램 개발사에서 개발을 막 시작하는 사람일 수도 있습니다. 이 책은 간결한 개념 전달과 정확한 소스 구현이라는 두 가지에 중점을 두고 집필했습니다. 따라서 시작하는 여러분에게 자료 구조의 개념을 명확하게 갖추도록 하는 좋은 동반자가 될 것이라고 자신 있게 말씀드릴 수 있습니다. 왜냐하면, 모쪼록 이 책을 통해 어렵게만 느껴지던 자료구조를 이해하고 직접 구현하면서 개발의 즐거움을 느껴보시기 바랍니다.


- 출판사 리뷰 -

누구를 위한 책인가?
이 책은 프로그램을 개발하려는 모든 분을 위해 쓰였습니다. 자료구조를 통해 프로그램 개발 능력을 향상시키고 싶은 분들이 주 대상 독자가 됩니다. 이를 위해 이 책은 자료구조의 기본 개념을 쉽고 간결한 설명으로 제시합니다. 또한, 자료구조에 대한 예제 소스를 제공하여 실제 개발 능력을 향상시키고자 합니다.

선수 연계 과목
이 책은 C 언어를 기본 구현 언어로 사용합니다. C 언어에 대한 기초 문법 및 개발 도구인 Visual Studio의 간단한 사용 방법을 익힌 분들이라면 충분히 이 책을 시작할 수 있습니다. C 언어의 함수, 구조체 및 포인터를 알고 있으신 분이라면 이 책을 읽을 수 있습니다. 혹시 아직 C 언어를 공부하지 않으신 분이라면, 프리렉 출판사에서 발간한 《C 언어 정복 리얼 교과서》라는 책을 추천합니다.

이 책의 구성

이 책의 각 장은 다음의 흐름으로 이루어져 있습니다.

일상생활의 예를 통해서 자료구조의 기본 개념을 설명합니다. 왜 이런 자료구조가 필요한지 필요성을 이야기하고, 이에 대해서 어떤 개념이기 때문에 대안이 될 수 있는지 설명합니다.

간단 요약
각 장의 자료구조에 대한 핵심 개념을 요약합니다.

사용 시나리오
앞서 정의된 자료구조를 실제 사용한다면 어떠한 시나리오에 의해 사용될 수 있는지, 그 사용 과정을 예를 통해 설명합니다. 자료구조의 사용 과정을 살펴보면서, 독자 여러분은 자료구조를 실제 이렇게 사용할 수 있다는 것을 알게 됩니다.

추상 자료형
자료구조를 구현하기에 앞서, 먼저 각 자료구조에 대한 ‘추상 자료형’을 정의합니다. 추상 자료형은 1장에서 배우게 되는데, 일종의 설계도라고 볼 수 있습니다. 추상 자료형을 정의함으로써 독자 여러분은 자연스럽게 다음 단계인 자료구조의 구현 단계로 나아갈 수 있습니다.

구현
앞서 설명한 자료구조의 개념을 실제 소스로 구현하는 단계입니다. 자료구조의 개념이 실제 소스로 어떻게 구현되는지 주의해서 살펴보아야 합니다. 처음에는 구조체에 대한 설명으로 시작하여, 자료구조의 각 연산 별로 소스를 설명합니다. 보통 소스의 제일 마지막은 앞서 언급한 사용 시나리오를 실제 구현하는 예제 소스로 이루어집니다. 이러한 예제 소스를 통해, 내가 구현한 자료구조를 어떻게 사용할 수 있는지 응용 능력을 키우게 됩니다.

여기서 잠깐
본문의 중간마다 ‘여기서 잠깐’이라는 참고 내용이 있습니다. 말 그대로 본문의 내용을 쉽게 이해하기 위한 참고 자료가 됩니다.

연습 문제
각 장이 끝날 때마다 본문에서 익힌 핵심적인 내용을 문제를 통해 확인하게 됩니다. 또한, 문제 중에서는 개념을 확인하는 문제뿐 아니라 소스를 통해 구현하는 문제도 있으니, 이 문제들을 통해 개념을 새롭게 정리하고, 개발 실력을 점검할 수 있습니다.
Chapter 1 자료구조의 시작
__1. 자료구조란?
__2. 자료구조의 분류
__3. 자료구조와 알고리즘

Chapter 2 배열 리스트
__1. 리스트란?
__2. 리스트 사용 시나리오
__3. 리스트의 추상 자료형
__4. 배열 리스트란?
__5. 배열 리스트의 구현

Chapter 3 연결 리스트
__1. 연결 리스트
__2. 연결 리스트의 구현
__3. 연결 리스트 관련 함수들

Chapter 4 연결 리스트의 확장
__1. 원형 연결 리스트
__2. 이중 연결 리스트
__3. 연결 리스트의 응용: 다항식

Chapter 5 스택
__1. 스택이란?
__2. 스택의 사용 시나리오
__3. 스택의 추상 자료형
__4. 배열로 구현한 스택
__5. 포인터로 구현한 연결 스택

Chapter 6 스택의 적용
__1. 역순인 문자열 만들기
__2. 수식에서 괄호 검사하기
__3. 후위 표기법으로 수식 계산하기
__4. 중위 표기 수식을 후위 표기 수식으로 변환하기

Chapter 7 큐
__1. 큐란?
__2. 큐의 사용 시나리오
__3. 큐의 추상 자료형
__4. 배열로 구현한 선형 큐
__5. 배열로 구현한 원형 큐
__6. 포인터로 구현한 큐

Chapter 8 재귀 호출
__1. 재귀 호출이란?
__2. 재귀 호출과 반복 호출

Chapter 9 트리
__1. 트리란?
__2. 이진 트리
__3. 이진 트리의 추상 자료형
__4. 배열로 구현한 이진 트리
__5. 포인터로 구현한 이진 트리
__6. 이진 트리의 순회

Chapter 10 히프
__1. 히프란?
__2. 히프의 추상 자료형
__3. 최대 히프에서의 추가 연산
__4. 히프에서의 제거 연산
__5. 히프의 구현
__6. 히프의 응용

Chapter 11 그래프
__1. 그래프란?
__2. 그래프의 추상 자료형
__3. 인접 행렬로 구현한 그래프
__4. 인접 리스트로 구현한 그래프
__5. 무방향 그래프의 구현
__6. 그래프 탐색

Chapter 12 검색
__1. 순차 검색
__2. 색인 순차 검색
__3. 이진 검색
__4. 이진 검색 트리
이상진

현 ㈜소만사 연구소 개발실장
삼성네트웍스, 핸디소프트 근무
서울대학교 정보시스템 전공 석사
서울대학교 정보시스템 전공 박사
숭실대, 인하대 출강
저서: 《열혈강의 자료구조》, 《C언어 정복 리얼 교과서》, 《정보 보안 가이드북》