스크랩

구간

쉽게 배우는 C 자료구조

최영규, 천인국 저 | 생능 | 2024년 01월

베스트셀러

북트리

정가
$58.00
판매가
$42.28 (27%↓) 최저가 보상
적립금
$0.85 (2%P)
출고예상일
2026년 10월 07일 수령예상일 안내
북카트 담기 바로구매하기 위시리스트담기

평점 -  ·  리뷰 0

리뷰 쓰기

ISBN : 9791192932545 / 424쪽 / 806g / 190 x 240 (㎜)

이 상품에 궁금하신점이 있으세요? 1:1상담문의

추천inside
Adobe Flash Player 가져오기

이 분야의 베스트셀러

아래의 도서와 구매하시면 이 도서들의 적립금을 즉시적용해 드립니다.

  • 21,600
  • 19,800
  • 31,500
  • 21,420

책 소개

반디앤루니스 리뷰

입문자들이 쉽고 재미있게 자료구조를 이해하고 구현하며, 문제 해결에 활용할 수 있도록 하였다. 자료구조의 개념과 동작 원리를 자세하게 설명하였으며, 다양한 응용을 제시하였다. 모든 코드는 실행하고 결과를 확인할 수 있도록 완전한 형태로 제공하였다. 또한, 지루하지 않고 내용을 쉽게 이해할 수 있도록 적절한 그림들을 충분히 사용하여 최대한 쉬운 책을 만들고자 하였다.

 

 

출판사 리뷰

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

이 책의 특징

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

저자 소개

  • 저자 : 최영규, 천인국

저자 : 최영규

2016년부터 자료구조, 알고리즘, C++ 등 프로그래밍 관련 책을 집필하고 있다. 단순히 잘 읽히는 책이 아니라 독자들이 실습을 통해 활용 능력을 높이는 데 도움이 되는 책을 쓰고자 노력하고 있다. 현재 한국기술교육대학교 컴퓨터공학부에서 교수로 재직하고 있으며 컴퓨터 프로그래밍 교육 분야에 공헌하고 있다. 이론과 실습 교육에 대한 공로를 인정받아 대학 내 Best Teaching Award를 두 번 수상하였다.

현재까지 『C++로 쉽게 풀어쓴 자료구조』(2016), 『게임으로 배우는 C++』(2017), 『두근두근 자료구조』(2018), 『파이썬 알고리즘』(2021), 『파이썬으로 쉽게 배우는 자료구조』(2023) 등을 생능출판사를 통해 출간하였다.

 

저자 : 천인국

서울대학교 전자공학과에 입학하여 1983년에 공학사 학위를 취득하였고, 한국과학기술원 대학원에 입학하여 1985년에 전기 및 전자공학과 석사 학위를, 1993년에 박사 학위를 취득하였다. 1985년부터 1988년까지 삼성전자 종합연구소에서 주임 연구원으로 재직하였고, 1993년부터 현재까지 순천향대학교 컴퓨터공학과 교수로 재직 중이다. 2005년에는 캐나다 UBC에서 방문교수를 지냈다.

 

저서로는 『인공지능 2판』(2023, 인피니티북스), 『HTML5+CSS3+JavaScript로 배우는 웹프로그래밍 기초 2판』(2023, 인피니티북스), 『Power JAVA 3판』(2022, 인피니티북스), 『인공지능』(2020, 인피니티북스), 『스크래치로 배우는 컴퓨팅 사고와 문제해결』(2019, 인피니티북스), 『OpenCV를 이용한 디지털 영상처리』(2019, 인피니티북스), 『Power Java Compact』(2018, 인피니티북스), 『어서와 C++는 처음이지!』(2018, 인피니티북스), 『문제해결과 컴퓨팅 사고』(2017, 인피니티북스), 『문제해결과 컴퓨팅 사고를 위한 스크래치』(2017, 인피니티북스), 『문제해결과 컴퓨팅 사고를 위한 파이썬』(2017, 인피니티북스), 『어서와 파이썬은 처음이지!』(2016, 인피니티북스), 『어서와 Java는 처음이지!』(2015, 인피니티북스), 『어서와 C언어는 처음이지!』(2015, 인피니티북스), 『HTML5+CSS3+JavaScript로 배우는 웹프로그래밍 기초』(2014, 인피니티북스), 『C++ Espresso』(2010, 인피니티북스), 『Power C++』(2010, 인피니티북스), 『쉽게 풀어쓴 C언어 Express』(2007, 생능출판사), 『C언어로 쉽게 풀어쓴 자료구조』(2005, 생능출판사) 등이 있다.

목차


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 트리 연산의 구현
연습문제

top