HOME > 도서정보 > 도서상세보기
 
C언어로 쉽게 풀어쓴
자료구조[개정판][절판]
지은이 천인국, 공용해, 하상호
정  가 29,000원
상  태 절판
출판일 2014.02.14
페이지 542
사이즈 국배판/컬러
ISBN 9788970506432
강의자료는 교수/강사 님으로 로그인후 이용하실 수 있습니다.
자료구조_학습자용(3).zip
보조자료는 회원가입 없이도 다운받을 수 있습니다
부록CD {가상실습 소프트웨어(자바애플릿), 플래시(HTML)
프로젝트(PDF), 소스(C)} [20160714]
 

6만부 돌파

자료 구조는 컴퓨터 과학 및 공학 분야의 중요하고 기초적인 과목 중의 하나이다. 자료 구조는 특히 효율적이고 체계적인 프로그래밍 기법을 습득하는데 기본이 된다 할 것이다. 이 책을 저술하게 된 가장 큰 이유는, 보다 쉬운 자료구조 책을 만들어 보자는 것이었다. 또한 자바 애플릿을 이용하여 가상 실습을 할 수 있게 하여 자료구조의 핵심적인 내용을 빠르게 이해할 수 있는 동시에, 실질적인 응용 프로그램들이 제시되어 학습자들이 흥미를 잃지 않고 학습할 수 있도록 하자는 것이었다. 이 책을 저술하면서 역점을 두었던 몇 가지는 다음과 같다.

• 기존의 어렵게 설명되었던 부분들을 최대한 쉽게, 단계적으로 학습할 수 있도록 배려하였다. 본격적인 내용을 설명하기에 앞서서 먼저 그림으로 충분히 설명을 하였다. 다음에 자바 애플릿으로 작성된 가상 실습 소프트웨어로 개념을 확실히 한 다음, 유사코드로 작성된 알고리즘을 학습하고 최종적으로 C언어로 구현된 내용을 학습할 수 있도록 구성되었다.

• 자료구조와 알고리즘을 쉽게 이해할 수 있도록 플래시로 제작된 애니메이션과 자바 애플릿으로 제작된 가상 실습 프로그램을 부록으로 제공함으로써 이론적인 내용을 쉽게 습득할 수 있도록 하였다. 이들 애니메이션과 가상 실습을 통하여 기존에 어렵게만 느껴지던 자료구조 과목의 내용을 멀티미디어 시각화를 통해서 알기 쉽게 전달할 수 있도록 하였다. 특히, 플래시 애니메이션을 통해서 이해하기 어려운 개념을 알기 쉽게 시각화하여 설명하고, 자바 애플릿을 제작하여 알고리즘의 실행 과정을 시각화함으로써 자료구조가 실행도중에 변화되는 모습을 생생하게 전달할 수 있도록 하였다. 또한 자바 애플릿 프로그램은 사용자가 입력 자료를 변경하여 실험을 할 수 있으며 프로그램 소스를 한 문장씩 실행하면서 자료구조가 변화되는 모습을 직접 볼 수 있게 함으로써 프로그램 소스를 쉽게 이해할 수 있도록 하였다.

• 되도록 단편적인 프로그램이 아닌 완전한 프로그램을 제공하려고 노력하였다. 기존의 경우, 일부 함수만 제시됨으로서 실제로 학생들이 실습 또는 활용하려고 할 때에 여러 가지 애로 사항이 많았다. 따라서 이 책에서는 최대한 main 함수를 포함하여 완전한 프로그램을 제공하여 사용자들이 쉽게 소스를 활용할 수 있도록 노력하였다.

• 실질적이고 구체적인 응용 문제를 제시하려고 노력하였다. 자료구조와 알고리즘 공부를 할 때에는 가능하면 실질적이고 구체적인 실세계의 문제를 함께 다루는 것이 큰 도움이 된다. 따라서 알고리즘과 자료구조를 공부할 때 특히 우리가 경험하는 실세계의 대상들과 관련이 있는 것들을 풀어보는 것은 아주 중요하다. 따라서 이 책에서는 가능한 한 실제적인 응용 프로그램을 많이 다루려고 노력하였다.

• 이론을 이해한 다음, 프로그래밍 도구를 이용하여 실습을 해보는 것은 프로그래밍 능력 향상에 많은 도움이 된다. 이 책에서는 자료구조 실습을 단계적으로 진해해볼 수 있도록 실습 문제를 추가하였다. 실습 문제에서는 빈칸이 포함된 소스가 주어지고 학습자들은 단계적으로 소스를 추가해가는 방식으로 자율적으로 실습을 진행할 수 있다.

• C 프로그램에 앞서서 유사 코드로 작성된 알고리즘을 제시함으로서 자료구조와 알고리즘의 핵심적인 내용을 쉽게 이해할 수 있도록 하였다. 자료구조나 알고리즘을 공부할 때는 처음에는 특정한 언어로 구현된 것을 보지 않는 것이 좋을 때가 많다. 대신 말로 된 설명이나 유사 코드(pseudo-code) 등으로 개념을 먼저 이해하는 것이 중요하다.

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

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

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

4. 리스트
     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. 선형 리스트의 응용: 텍스트 에디터
     ■ 연습문제

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

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

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

8. 우선 순위 큐
     8.1. 우선 순위 큐 추상 자료형
     8.2. 우선 순위 큐의 구현 방법
     8.3. 히프
          8.3.1. 히프의 개념
          8.3.2. 히프의 구현
          8.3.3. 삽입 연산
          8.3.4. 삭제 연산
          8.3.5. 히프의 복잡도 분석
     8.4. 히프의 응용
     ■ 연습문제

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

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. 위상 정렬
     ■ 연습문제

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

12. 탐색
     12.1. 탐색이란?
     12.2. 정렬되지 않은 배열에서의 탐색
     12.3. 정렬된 배열에서의 탐색
     12.4. 균형 이진 탐색 트리
          12.4.1. AVL 트리
          12.4.2. 2-3 트리
          12.4.3. 2-3-4 트리
     ■ 연습문제
서평이 업데이트 예정입니다.