장바구니 담기 close

장바구니에 상품을 담았습니다.

자료구조

자료구조

  • 천인국
  • |
  • 생능
  • |
  • 2014-02-14 출간
  • |
  • 544페이지
  • |
  • 128 X 188 mm
  • |
  • ISBN 9788970506432
판매가

29,000원

즉시할인가

28,710

배송비

2,500원

(제주/도서산간 배송 추가비용:3,000원)

수량
+ -
총주문금액
28,710

이 상품은 품절된 상품입니다

※ 스프링제본 상품은 반품/교환/환불이 불가능하므로 신중하게 선택하여 주시기 바랍니다.

출판사서평

C언어로 쉽게 풀어쓴 자료 구조

우리가 C언어를 배우려고 할 때 시행착오를 겪는 부분들이 있다. 그중 하나가 자료 구조와 알고리즘을 매우 어렵다고 느끼는 것이고, C언어를 이해하지 않고 암기하려는 것이며, 더 나아가 C언어의 완전한 이해 없이 C++를 배우고자 도전하는 것이다.
이 책은 도입부에서부터 이러한 어려움을 해결해주고 있는데, 자료 구조와 알고리즘에 대한 정의를 그림을 통해 충분히 설명하면서 자바 애플릿으로 작성된 가상 실습 소프트웨어로 개념을 확실히 잡아주고 있다. 더 나아가 유사코드로 작성된 알고리즘을 학습하고 최종적으로 C언어로 구현된 내용을 학습할 수 있도록 구성하고 있어, 자료 구조와 알고리즘의 개념의 이해는 물론이고 C언어로 구현된 내용을 통해 C언어를 쉽게 이해할 수 있다.
자료 구조와 알고리즘을 쉽게 이해할 수 있도록 플래시로 제작된 애니메이션과 자바 애플릿으로 제작된 가상 실습 프로그램은 이론적인 내용을 쉽게 습득할 수 있도록 하고 있다. 이들 애니메이션과 가상 실습을 통하여 기존에 어렵게만 느껴지던 자료 구조의 내용을 멀티미디어 시각화를 통해서 알기 쉽게 전달하고 있는데, 특히 플래시 애니메이션을 통해서 이해하기 어려운 개념을 알기 쉽게 시각화하여 설명하고 있으며, 자바 애플릿을 제작하여 알고리즘의 실행 과정을 시각화함으로써 자료 구조가 실행 도중에 변화되는 모습을 생생하게 전달할 수 있도록 하였다. 또한 자바 애플릿 프로그램은 사용자가 입력 자료를 변경하여 실험을 할 수 있으며 프로그램 소스를 한 문장씩 실행하면서 자료 구조가 변화되는 모습을 직접 볼 수 있게 함으로써 프로그램 소스를 쉽게 이해할 수 있도록 하였다.
자료 구조나 알고리즘을 공부할 때는 처음에는 특정한 언어로 구현된 것을 보지 않는 것이 좋을 때가 많다. 대신 말로 된 설명이나 유사코드(pseudo-code) 등으로 개념을 먼저 이해하는 것이 중요하다. 이 책은 이러한 점을 배려하여 C 프로그램에 앞서서 유사코드로 작성된 알고리즘을 제시함으로써 자료 구조와 알고리즘의 핵심적인 내용을 쉽게 이해할 수 있도록 하였다.

실습을 통한 프로그래밍 능력 배양

이론을 이해한 다음, 프로그래밍 도구를 이용하여 실습을 해보는 것은 프로그래밍 능력 향상에 많은 도움이 된다. 이 책에서는 자료 구조 실습을 단계적으로 진행해볼 수 있도록 실습 문제를 두고 있는데, 실습 문제에서는 빈칸이 포함된 소스가 주어지고 학습자들이 단계적으로 소스를 추가해가는 방식으로 자율적으로 실습을 진행할 수 있도록 하였다.
자료 구조와 알고리즘을 학습할 때 가능하면 실질적이고 구체적인 실세계의 문제를 함께 다루는 것이 큰 도움이 된다. 이 책은 우리가 경험하는 실세계의 대상들과 관련이 있는 것들을 풀어볼 수 있도록 실제적인 응용 프로그램을 많이 다루고 있다. 프로그램은 단편적인 프로그램이 아닌 완전한 프로그램을 제공하려고 노력하였다. 예를 들어, 기존의 경우에는 일부 함수만 제시됨으로써 실제로 학생들이 실습 또는 활용하려고 할 때에 여러 가지 애로 사항이 많았는데, 이 책에서는 최대한 main 함수를 포함하여 완전한 프로그램을 제공하여 사용자들이 쉽게 소스를 활용할 수 있도록 하였다.

학습을 효과적으로 하기 위한 책의 구성과 내용

이 책은 전체적으로 12개의 장으로 구성되어 있다. 각 장의 주요 내용은 다음과 같다.
1장 ‘자료 구조와 알고리즘’에서는 자료 구조와 알고리즘의 개념, 추상 데이터 타입 도입의 필요성, 시간 복잡도의 개념, 빅오 표기법에 의한 알고리즘 분석 기법 및 자료 구조 표기법을 설명하고 있다. 2장 ‘순환’에서는 순환의 개념, 순환 알고리즘의 구조, 순환 호출 사용 시 주의점, 순환 호출 응용력 배양에 대해 서술하고 있다. 3장 ‘배열, 구조체, 포인터’에서는 배열, 구조체, 포인터의 개념, 배열을 이용한 응용 프로그램 작성, 함수 호출 시에 배열과 구조체의 전달 방법, 포인터 관련 연산자, 동적 메모리 할당 및 반납의 메커니즘을 기술하고 있다.
4장 ‘리스트’에서는 리스트의 개념과 추상 자료형, 리스트의 배열과 연결 리스트의 2가지 구현 방법, 연결 리스트의 개념과 작동 원리, 연결 리스트의 여러 가지 연산, 리스트를 이용하여 프로그램할 수 있는 능력에 대해 설명하고 있다. 5장 ‘스택’에서는 스택의 개념과 추상 자료형, 스택의 동작 원리, 배열과 연결 리스트의 2가지 구현 방법, 스택 응용 프로그램을 제작할 수 있는 능력에 대해 서술하고 있다. 6장 ‘큐’에서는 큐의 개념과 추상 자료형, 배열과 연결 리스트의 2가지 구현 방법, 덱의 개념과 구현 방법, 큐를 이용하여 프로그램할 수 있는 능력에 대해 기술하고 있다.
7장 ‘트리’에서는 트리의 개념, 트리의 순회 알고리즘, 이진 탐색 트리의 동작 원리, 이진 탐색 트리의 효율성에 대해 설명하고 있다. 8장 ‘우선순위 큐’에서는 우선순위 큐의 개념, 배열, 리스트로 구현된 우선순위 큐의 장단점, 히프의 동작 원리, 히프의 효율성, 히프의 배열을 이용한 구현에 대해 기술하고 있다. 9장 ‘정렬’에서는 정렬의 개념, 각 정렬 알고리즘의 동작 원리, 장단점, 효율성, C언어 구현 등에 대해 서술하고 있다.
10장 ‘그래프’에서는 그래프의 개념, 그래프를 표현하는 2가지 방법, 그래프 순회 방법, 최단 경로, 최소 신장 트리 알고리즘, 그래프를 문제 풀이에 응용하는 방법을 설명하고 있다. 11장 ‘해싱’에서는 추상 자료형 사전 구조, 해싱의 개념, 해시 함수의 변환 방법, 충돌 해결책인 선형 조사법 및 체이닝에 대해 기술하고 있다. 12장 ‘탐색’에서는 순차 탐색과 이진 탐색의 장단점, 색인 탐색과 보간 탐색의 개념, 균형 트리를 사용하는 목적, AVL 트리의 원리 및 삽입 연산, 2-3 트리와 2-3-4 트리의 개념에 대해 서술하고 있다.

목차

CHAPTER 01 자료 구조와 알고리즘
1.1 자료 구조와 알고리즘
1.2 추상 데이터 타입
1.3 알고리즘의 성능 분석
1.4 자료 구조 표기법
연습문제

CHAPTER 02 순환
2.1 순환의 소개
2.2 거듭제곱 값 계산
2.3 피보나치 수열의 계산
2.4 하노이탑 문제
연습문제

CHAPTER 03 배열, 구조체, 포인터
3.1 배열
3.2 배열의 응용: 다항식
3.3 배열의 응용: 희소 행렬
3.4 구조체
3.5 포인터
3.6 동적 메모리 할당
연습문제

CHAPTER 04 리스트
4.1 리스트 추상 데이터 타입
4.2 배열로 구현된 리스트
4.3 연결 리스트
4.3.1 연결 리스트의 소개
4.3.2 단순 연결 리스트
4.3.3 원형 연결 리스트
4.3.4 이중 연결 리스트
4.3.5 연결 리스트의 응용: 다항식
4.4 연결 리스트로 구현된 리스트
4.5 선형 리스트의 응용: 텍스트 에디터
연습문제

CHAPTER 05 스택
5.1 스택 추상 데이터 타입
5.2 배열로 구현한 스택
5.3 연결 리스트로 구현한 스택
5.4 괄호 검사
5.5 수식의 계산
5.6 미로 탐색 문제
연습문제

CHAPTER 06 큐
6.1 큐 추상 데이터 타입
6.2 배열로 구현된 큐
6.3 연결 리스트로 구현된 큐
6.4 덱
6.5 큐의 응용
연습문제

CHAPTER 07 트리
7.1 트리의 개념
7.2 이진 트리의 소개
7.3 이진 트리의 표현
7.4 이진 트리의 순회
7.5 이진 트리의 연산
7.6 스레드 이진 트리
7.7 이진 탐색 트리
7.8 이진 탐색 트리의 응용: 영어 사전
연습문제

CHAPTER 08 우선순위 큐
8.1 우선순위 큐 추상 데이터 타입
8.2 우선순위 큐의 구현 방법
8.3 히프
8.3.1 히프의 개념
8.3.2 히프의 구현
8.3.3 삽입 연산
8.3.4 삭제 연산
8.3.5 히프의 복잡도 분석
8.4 히프의 응용
연습문제

CHAPTER 09 정렬
9.1 정렬이란?
9.2 선택 정렬
9.3 삽입 정렬
9.4 버블 정렬
9.5 셸 정렬
9.6 합병 정렬
9.7 퀵 정렬
9.8 히프 정렬
9.9 기수 정렬
9.10 정렬 알고리즘의 비교
9.11 정렬의 응용: 영어 사전을 위한 정렬
연습문제

CHAPTER 10 그래프
10.1 그래프란?
10.2 그래프 추상 데이터 타입
10.3 그래프의 표현 방법
10.4 그래프의 탐색
10.4.1 깊이 우선 탐색
10.4.2 너비 우선 탐색
10.5 연결 성분
10.6 신장 트리
10.7 최소 비용 신장 트리
10.7.1 Kruskal의 MST 알고리즘
10.7.2 Prim의 MST 알고리즘
10.8 최단 경로
10.8.1 Dijkstra의 최단 경로 알고리즘
10.8.2 Floyd의 최단 경로 알고리즘
10.9 위상 정렬
연습문제

CHAPTER 11 해싱
11.1 해싱이란?
11.2 추상 자료형 사전 구조
11.3 해싱의 구조
11.4 해시 함수
11.5 충돌 해결책
11.5.1 선형 조사법
11.5.2 체이닝
11.6 해싱의 성능 분석
연습문제

CHAPTER 12 탐색
12.1 탐색이란?
12.2 정렬되지 않은 배열에서의 탐색
12.3 정렬된 배열에서의 탐색
12.3.1 정렬된 배열에서의 순차 탐색
12.3.2 이진 탐색
12.3.3 색인 순차 탐색
12.3.4 보간 탐색
12.4 균형 이진 탐색 트리
12.4.1 AVL 트리
12.4.2 2-3 트리
12.4.3 2-3-4 트리
연습문제

저자소개

저자 천인국은
서울대학교 전자공학과 공학사
한국과학기술원 전기 및 전자공학과 공학석사
한국과학기술원 전기 및 전자공학과 공학박사
삼성전자 종합연구소 주임 연구원
University of British Columbia 방문 교수
현재 순천향대학교 컴퓨터공학과 교수

도서소개

이 책은 도입부에서부터 C언어에서 시행착오를 겪는 자료 구조와 알고리즘에 대한 정의를 그림을 통해 충분히 설명하면서 자바 애플릿으로 작성된 가상 실습 소프트웨어로 개념을 확실히 잡아주고 있다. 더 나아가 유사코드로 작성된 알고리즘을 학습하고 최종적으로 C언어로 구현된 내용을 학습할 수 있도록 구성하고 있어, 자료 구조와 알고리즘의 개념의 이해는 물론이고 C언어로 구현된 내용을 통해 C언어를 쉽게 이해할 수 있다.

교환 및 환불안내

도서교환 및 환불
  • ㆍ배송기간은 평일 기준 1~3일 정도 소요됩니다.(스프링 분철은 1일 정도 시간이 더 소요됩니다.)
  • ㆍ상품불량 및 오배송등의 이유로 반품하실 경우, 반품배송비는 무료입니다.
  • ㆍ고객님의 변심에 의한 반품,환불,교환시 택배비는 본인 부담입니다.
  • ㆍ상담원과의 상담없이 교환 및 반품으로 반송된 물품은 책임지지 않습니다.
  • ㆍ이미 발송된 상품의 취소 및 반품, 교환요청시 배송비가 발생할 수 있습니다.
  • ㆍ반품신청시 반송된 상품의 수령후 환불처리됩니다.(카드사 사정에 따라 카드취소는 시일이 3~5일이 소요될 수 있습니다.)
  • ㆍ주문하신 상품의 반품,교환은 상품수령일로 부터 7일이내에 신청하실 수 있습니다.
  • ㆍ상품이 훼손된 경우 반품 및 교환,환불이 불가능합니다.
  • ㆍ반품/교환시 고객님 귀책사유로 인해 수거가 지연될 경우에는 반품이 제한될 수 있습니다.
  • ㆍ스프링제본 상품은 교환 및 환불이 불가능 합니다.
  • ㆍ군부대(사서함) 및 해외배송은 불가능합니다.
  • ㆍ오후 3시 이후 상담원과 통화되지 않은 취소건에 대해서는 고객 반품비용이 발생할 수 있습니다.
반품안내
  • 마이페이지 > 나의상담 > 1 : 1 문의하기 게시판 또는 고객센터 1800-7327
교환/반품주소
  • 경기도 파주시 문발로 211 1층 / (주)북채널 / 전화 : 1800-7327
  • 택배안내 : CJ대한통운(1588-1255)
  • 고객님 변심으로 인한 교환 또는 반품시 왕복 배송비 5,000원을 부담하셔야 하며, 제품 불량 또는 오 배송시에는 전액을 당사에서부담 합니다.