서브메뉴

본문

쉽게 배우는 C자료구조
쉽게 배우는 C자료구조
저자 : 최영규^천인국
출판사 : 생능출판
출판년 : 2024
ISBN : 9791192932545

책소개

코딩을 조금이라도 해 보았다면 프로그래밍이 자료(data)를 주로 다루는 것임을 알 수 있을 것이다. 우리가 프로그램을 개발할 때 가장 먼저 해야 할 일은 처리할 자료를 컴퓨터가 잘 다룰 수 있는 형태로 표현하는 것인데, 이를 다루는 학문이 자료구조(data structure)이다. 이러한 자료구조는 알고리즘을 공부하기 위한 기초 지식이기도 하지만 그 자체로도 매우 중요하다. 특히, 개념 이해와 함께 코딩을 통한 구현 능력을 갖추어야 하는데, 이것 때문에 더 어렵고 까다롭게 느껴진다.
이 책은 입문자들이 쉽고 재미있게 자료구조를 이해하고 구현하며, 문제 해결에 활용할 수 있도록 하였다.
[교보문고에서 제공한 정보입니다.]

출판사 서평

이 책의 특징

ㆍ 자료구조의 개념과 동작 원리를 자세하게 설명하였으며, 다양한 응용을 제시하였다. 모든 코드는 실행하고 결과를 확인할 수 있도록 완전한 형태로 제공하였다. 또한, 지루하지 않고 내용을 쉽게 이해할 수 있도록 적절한 그림들을 충분히 사용하여 최대한 쉬운 책을 만들고자 하였다.
ㆍ C언어를 이용해 코드를 설명하였다. 특히, 가장 쉽고 단계적인 방법으로 설명하려고 노력하였다. 이를 위해 비교적 쉬운 “배열과 구조체”를 2장에서 먼저 학습하고 3~4장에서 스택과 큐의 구현에 활용하였다. 어려운 개념인 “포인터”는 5장부터 다루고, 스택과 큐를 연결된 구조로 다시 구현하였다. 특히, 포인터에 대한 자신이 없어도 만들 수 있는 코드가 많다는 것을 보이려고 했다.
ㆍ 다양한 형태의 충분한 연습문제를 수록하였다. 모든 장에서 개념의 이해를 확인하기 위해 빈칸 채우기, OX, 사지선다형 문제와 단답식이나 간단한 코딩이 필요한 문제를 함께 제공하였다. 또한 심도 있는 고찰과 더 많은 코딩이 필요한 프로그래밍 연습문제를 통해 문제 해결 능력을 기를 수 있도록 하였다.
[교보문고에서 제공한 정보입니다.]

목차정보

CHAPTER 01 자료구조와 알고리즘
1.1 자료구조란?
자료구조의 분류
자료구조의 구현 방법
이 책의 구성
1.2 알고리즘이란?
알고리즘의 기술 방법
1.3 추상 자료형
추상 자료형이란?
추상 자료형의 예: 다항식
1.4 알고리즘의 성능 분석
실행 시간 측정 방법
알고리즘의 복잡도 분석
복잡도의 점근적 표기
최선, 평균, 최악의 경우
복잡도 분석의 예
연습문제

CHAPTER 02 배열과 구조체
2.1 배열
1차원 배열
2차원 배열
문자열
함수의 매개변수로 배열 전달
2.2 구조체
구조체의 정의와 선언
구조체의 연산
구조체를 포함하는 구조체와 구조체 배열
구조체와 함수
2.3 배열과 구조체의 응용: 다항식 프로그램
다항식의 표현
희소 다항식의 표현
연습문제

CHAPTER 03 스택
3.1 스택이란?
스택의 추상 자료형
스택의 활용
3.2 배열을 이용한 스택
스택의 구현
3.3 스택의 응용: 괄호 검사
괄호 검사 알고리즘
괄호 검사 프로그램
3.4 스택의 응용: 계산기 프로그램
후위 표기식의 계산
후위 표기식 계산 프로그램
중위 표기의 후위 표기식 변환
중위 식의 후위 표기식 변환 프로그램
3.5 시스템 스택과 순환 호출
순환이란?
순환의 예: 하노이의 탑
연습문제

CHAPTER 04 큐
4.1 큐란?
큐의 추상 자료형
큐의 활용
4.2 배열을 이용한 큐
선형 큐(linear queue)
원형 큐(Circular Queue)
원형 큐의 구현
4.3 여러 개의 큐를 사용하려면?
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 힙 트리
힙 트리의 표현
삽입 연산
삭제 연산
최대 힙의 구현
연습문제

CHAPTER 08 그래프
8.1 그래프란?
그래프의 종류
그래프 용어
그래프의 추상 자료형
8.2 그래프의 표현
인접 행렬을 이용한 표현
인접 리스트를 이용한 표현
인접 행렬과 인접 리스트 중에서 어떤 것을 사용할까?
8.3 그래프 탐색
깊이 우선 탐색
너비 우선 탐색
그래프 탐색의 구현
탐색의 성능 분석
8.4 신장트리와 최소비용 신장트리
최소비용 신장트리란?
Prim의 MST 알고리즘
Kruskal의 MST 알고리즘
8.5 최단 경로
Dijkstra의 최단 경로 알고리즘
Floyd의 최단 경로 알고리즘
연습문제

CHAPTER 09 정렬
9.1 정렬이란?
정렬 관련 용어
9.2 선택 정렬
선택 정렬의 구현
9.3 삽입 정렬
삽입 정렬의 구현
9.4 버블 정렬
버블정렬의 구현
9.5 함수 포인터를 사용한 정렬
9.6 병합 정렬
정렬된 배열의 병합
병합 정렬의 구현
9.7 퀵 정렬
분할 알고리즘
퀵 정렬의 구현
퀵 정렬 라이브러리 함수
9.8 기수 정렬
여러 자리로 이루어진 수의 정렬
기수 정렬의 구현
정렬 알고리즘의 비교
연습문제

CHAPTER 10 탐색
10.1 탐색이란?
10.2 순차 탐색(sequential search)
순차 탐색 알고리즘
순차 탐색을 개선하는 방법?
10.3 이진 탐색(binary search)
이진 탐색 알고리즘
보간 탐색(interpolation search)
10.4 해싱
해싱과 오버플로
해시 함수
오버플로 처리: 개방 주소법
오버플로 처리: 체이닝(chaining)
10.5 심화 학습: 트리를 이용한 탐색
AVL 트리란?
AVL 트리의 삽입 연산
AVL 트리 구축 예
AVL 트리 연산의 구현
연습문제
[교보문고에서 제공한 정보입니다.]

QuickMenu