서브메뉴
검색
본문
Powered by NAVER OpenAPI
-
쉽게 배우는 C자료구조
저자 : 최영규^천인국
출판사 : 생능출판
출판년 : 2024
ISBN : 9791192932545
책소개
코딩을 조금이라도 해 보았다면 프로그래밍이 자료(data)를 주로 다루는 것임을 알 수 있을 것이다. 우리가 프로그램을 개발할 때 가장 먼저 해야 할 일은 처리할 자료를 컴퓨터가 잘 다룰 수 있는 형태로 표현하는 것인데, 이를 다루는 학문이 자료구조(data structure)이다. 이러한 자료구조는 알고리즘을 공부하기 위한 기초 지식이기도 하지만 그 자체로도 매우 중요하다. 특히, 개념 이해와 함께 코딩을 통한 구현 능력을 갖추어야 하는데, 이것 때문에 더 어렵고 까다롭게 느껴진다. 이 책은 입문자들이 쉽고 재미있게 자료구조를 이해하고 구현하며, 문제 해결에 활용할 수 있도록 하였다.
목차
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 트리 연산의 구현
연습문제