간편결제, 신용카드 청구할인
인터파크 롯데카드 5% (25,650원)
(최대할인 10만원 / 전월실적 40만원)
북피니언 롯데카드 30% (18,900원)
(최대할인 3만원 / 3만원 이상 결제)
NH쇼핑&인터파크카드 20% (21,600원)
(최대할인 4만원 / 2만원 이상 결제)
Close

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

소득공제

2013년 9월 9일 이후 누적수치입니다.

판매지수 159
?
판매지수란?
사이트의 판매량에 기반하여 판매량 추이를 반영한 인터파크 도서에서의 독립적인 판매 지수입니다. 현재 가장 잘 팔리는 상품에 가중치를 두었기 때문에 실제 누적 판매량과는 다소 차이가 있을 수 있습니다. 판매량 외에도 다양한 가중치로 구성되어 최근의 이슈도서 확인시 유용할 수 있습니다. 해당 지수는 매일 갱신됩니다.
Close
공유하기
정가

27,000원

  • 27,000

    810P (3%적립)

할인혜택
적립혜택
  • I-Point 적립은 마이페이지에서 직접 구매확정하신 경우만 적립 됩니다.
추가혜택
주문수량
감소 증가

* 배송예정일이 오늘이나 내일인 경우 1) 당일/하루배송 보장! 2) 배송 지연 시 I-Point 2,000P또는 4,000원 도서상품권 지급 &n 더보기

  • 이벤트/기획전

  • 연관도서

  • 상품권

AD

책소개

『C++로 쉽게 풀어쓴 자료구조』는 C++의 복잡한 문법이 아니라 자료구조에 초점을 맞춘 기본서다. 이 책에서는 어떤 자료구조를 설명하기 위해 추상 자료형, UML 다이어그램 그리고 C++ 클래스를 이용한다. 먼저 추상 자료형으로 그 자료구조에서 필요로 하는 데이터(객체)와 연산들을 알아보고, 이것을 UML 다이어그램을 이용해 보다 구체적으로 설계한다. 이것은 추상 자료형보다는 구체화되었지만 아직 프로그래밍 언어에는 독립적인 상태이다. 마지막으로 UML 다이어그램을 바탕으로 해당 자료구조를 C++ 클래스로 구현한 예를 보이고, main() 함수에서 구현된 클래스를 사용해 문제를 해결하는 예를 제시한다.

출판사 서평

C++의 복잡한 문법이 아니라 자료구조에 초점을 맞춘 기본서

자료구조(data structure)는 전산학 및 컴퓨터공학 분야에서 매우 중요하고 기초적인 과목이다. 하지만 자료구조는 학생들이 상당히 어려워하는 과목이다. 이 책의 특징은 다음과 같다.

- 자료구조를 구현하기 위해 이 책에서는 객체지향언어인 C++를 이용하였다. C++를 잘 모르면 이 책을 공부할 수 없을까? 물론 아니다. 이 책에서는 C++의 복잡한 문법이 아니라 자료구조에 초점을 맞추기 위해 기본적이고 실용적인 부분들만을 이용하여 설명하였다. 따라서 C 언어를 어느 정도 이해하고 있다면 C++를 잘 알지 못한다고 해서 너무 걱정할 필요는 없다. 각 장에서 자료구조들을 공부하면서 C++ 문법도 하나씩 알아나가자. 물론 C++를 이미 잘 알고 있으면 더욱 좋다. 이 책이 매우 좋은 C++ 복습서가 될 것이다.
- C++는 다양한 기능들을 제공하는 복잡한 언어로 때로는 불필요해 보이는 기능들도 포함한다. 이 책에서는 C++의 문법적인 측면보다는 Java와 같은 대부분의 객체지향언어에서 공통적으로 사용하는 유용한 기법들을 위주로 예제 코드를 작성하였다. 따라서 이 책의 독자들이 책의 내용들을 Java와 같은 다른 객체지향언어에도 쉽게 적용할 수 있도록 노력하였다.
- 2장에서 이 책에서 주로 사용하는 C++ 문법과 그렇지 않은 문법을 구분하였다. 동적 바인딩이나 다중상속 등 다소 복잡한 문법은 이 책에서 사용하지 않는다. 이 책에서는 템플릿에 대해서도 다루지 않지만 C++에서 제공하는 표준 템플릿 라이브러리(STL)를 사용하는 방법들은 소개한다. STL은 프로그래밍에서 공통적으로 사용되는 자료구조와 알고리즘을 템플릿 기반으로 작성하여 제공하는데, STL에서 제공하는 자료구조들을 문제 해결에 적용해 보는 것은 현실적으로 매우 유용할 것으로 생각된다.
- C 언어를 공부한 학생들도 포인터가 어려웠을 것이다. 이 책에서는 포인터와 연결 리스트를 5장에서 설명하고 있다. 포인터가 어렵지만 포인터의 개념이 명확하지 않더라도 구현할 수 있는 프로그램이 많다는 것을 이야기하고 싶다.
- 각 장의 학습 내용의 양을 가능하면 균일하게 배분하도록 구성하였다. 이를 위해 트리와 그래프는 각각 두 개의 장으로 나누었다. 또한 최대한 연관된 내용을 인접 장에 배치하였다.
- 이 책에서는 어떤 자료구조를 설명하기 위해 추상 자료형, UML 다이어그램 그리고 C++ 클래스를 이용한다. 먼저 추상 자료형으로 그 자료구조에서 필요로 하는 데이터(객체)와 연산들을 알아보고, 이것을 UML 다이어그램을 이용해 보다 구체적으로 설계한다. 이것은 추상 자료형보다는 구체화되었지만 아직 프로그래밍 언어에는 독립적인 상태이다. 마지막으로 UML 다이어그램을 바탕으로 해당 자료구조를 C++ 클래스로 구현한 예를 보이고, main() 함수에서 구현된 클래스를 사용해 문제를 해결하는 예를 제시한다.
- 가능한 한 완전한 프로그램을 제공하기 위해 노력하였다. 책에서 제시하고 있는 대부분의 코드들은 main 함수를 포함하여 완전한 코드이며 프로그램의 실제 실행 결과를 함께 제시하여 학습자들이 쉽게 소스의 동작을 확인하고 이해하며 활용할 수 있도록 하였다.

목차

CHAPTER 01 자료구조와 알고리즘
1.1 자료구조
자료구조란?
자료구조의 분류
1.2 알고리즘
알고리즘이란?
프로그램 = 자료구조 + 알고리즘
알고리즘 기술 방법
1.3 추상 자료형
추상화란?
추상 자료형이란?
추상 자료형과 C++
1.4 알고리즘의 성능 분석
실행 시간 측정 방법
알고리즘의 복잡도 분석 방법
시간 복잡도 함수
빅오 표기법
빅오 표기법 이외의 표기법
최선, 평균, 최악의 경우
1.5 자료구조 표기법
ADT - Class Diagram - C++
UML Diagram
C++
표준 템플릿 라이브러리(STL)
연습문제
프로그래밍 프로젝트

CHAPTER 02 배열과 클래스
2.1 배열
배열의 개념
배열의 추상 자료형
1차원 배열
2차원 배열
함수의 파라미터로서의 배열
2.2 클래스
구조체의 개념
클래스와 C++ 문법
교재에서 거의 사용하지 않는 C++ 문법
2.3 배열과 클래스의 응용: 다항식 프로그램
다항식의 추상 자료형
다항식의 표현 방법
다항식 프로그램의 구현
희소 다항식의 표현
연습문제
프로그래밍 프로젝트

CHAPTER 03 스택
3.1 스택의 추상 자료형
스택이란?
스택의 추상 자료형
스택의 활용 예
스택의 구현 방법
3.2 스택의 구현
배열을 이용한 스택의 표현
배열을 이용한 스택의 구현
복잡한 구조의 항목에 대한 스택의 구현
연결 리스트를 이용한 스택
3.3 스택의 응용: 괄호 검사
괄호 검사와 스택
괄호 검사 알고리즘
괄호 검사 프로그램 구현
3.4 스택의 응용: 수식의 계산
수식의 계산과 스택
후위 표기 수식의 계산
후위 표기 수식 계산 프로그램 구현
중위 표기 수식의 후위 표기 변환 알고리즘
중위 표기 수식의 후위 표기 변환 프로그램 구현
3.5 미로 탐색 문제와 표준템플릿 라이브러리(STL)
미로 탐색 문제
미로 탐색 알고리즘
표준 템플릿 라이브러리(STL)
STL을 이용한 미로 탐색 프로그램 구현
연습문제
프로그래밍 프로젝트

CHAPTER 04 큐
4.1 큐의 추상 자료형
큐(Queue)란?
큐의 추상 자료형
큐의 활용
4.2 큐의 구현
선형 큐
원형 큐
삽입과 삭제 알고리즘
원형 큐의 구현
연결 리스트로 구현한 큐
4.3 덱
덱의 소개
덱 추상 자료형
배열을 이용한 원형 덱의 구현
연결된 덱의 구현
4.4 큐의 응용: 은행 시뮬레이션
시뮬레이션
은행 서비스 시뮬레이션 문제
4.5 덱의 응용: 미로 탐색 프로그램
깊이 우선 탐색과 너비 우선 탐색
STL의 큐를 이용한 미로 탐색
STL의 덱을 이용한 DFS 탐색
STL의 덱을 이용한 BFS 탐색
연습문제
프로그래밍 프로젝트

CHAPTER 05 포인터와 연결 리스트
5.1 포인터
포인터의 개념
함수와 포인터
배열과 포인터
객체와 포인터
자체 참조 클래스
함수 포인터
포인터에 대한 연산
포인터 사용 시 주의점
5.2 동적 메모리 할당
동적 메모리 할당의 개념
동적 메모리 할당과 해제를 위한 연산자
2차원 배열의 동적 할당
5.3 연결 리스트
연결 리스트란?
연결 리스트의 구조
연결 리스트의 종류
5.4 연결 리스트로 구현한 스택
연결 리스트로 구현한 스택의 구조
연결된 스택의 동작
연결 리스트로 구현한 스택: 학생 정보 스택
5.5 포인터의 응용: 연결 리스트로 구현한 큐
연결 리스트로 구현한 큐의 구조
연결된 큐의 연산
연결된 큐의 구현
복잡한 구조 항목에 대한 연결된 큐 구현: 학생 정보 큐
연습문제
프로그래밍 프로젝트

CHAPTER 06 리스트
6.1 리스트 추상 자료형
리스트란?
리스트의 추상 자료형
6.2 배열로 구현한 리스트
데이터 멤버
주요 연산
배열을 이용한 리스트 구현
6.3 연결 리스트로 구현된 리스트
연결 리스트로 구현된 리스트
시작 노드 표현 방법: 헤드 포인터와 헤드 노드
단순 연결 리스트를 이용한 리스트의 구현
6.4 다양한 형태의 연결 리스트
원형 연결 리스트(circular linked list)
이중 연결 리스트(doubly linked list)
이중 연결 리스트로 구현된 리스트
이중 연결 리스트로 구현한 덱
6.5 연결 리스트의 응용: 라인 편집기
라인 편집기란?
라인 편집기의 구현
연습문제
프로그래밍 프로젝트

CHAPTER 07 순환
7.1 순환의 소개
순환이란?
순환 호출의 내부적인 구현
순환 알고리즘의 구조
순환↔반복
순환의 원리
순환 알고리즘의 성능
7.2 거듭제곱 값 계산
7.3 피보나치수열의 계산
7.4 하노이 탑 문제
반복적인 형태로 바꾸기 어려운 순환
7.5 다중 순환
다중 순환이란?
영역 채색 문제
미로 탐색 문제
연습문제
프로그래밍 프로젝트

CHAPTER 08 트리
8.1 트리의 개념
트리의 용어들
트리의 표현
8.2 이진트리 소개
이진트리란?
이진트리의 성질
이진트리의 추상 자료형
8.3 이진트리의 표현
배열 표현법
링크 표현법
8.4 링크 표현법을 이용한 이진트리의 구현
8.5 이진트리의 순회
이진트리 순회 방법
전위, 중위, 후위 순회 구현
레벨 순회
8.6 이진트리 연산
트리의 노드 개수 구하기
단말 노드 개수 구하기
높이 구하기
8.7 이진트리 응용
수식 트리
디렉터리 용량 계산
8.8 스레드 이진트리
연습문제
프로그래밍 프로젝트

CHAPTER 09 이진 탐색 트리
9.1 이진 탐색 트리
탐색이란?
이진 탐색 트리란?
이진 탐색 트리의 추상 자료형
이진 탐색 트리의 기본 틀 설계
9.2 이진 탐색 트리의 연산
탐색 연산
삽입 연산
삭제 연산
9.3 이진 탐색 트리 프로그램
9.4 이진 탐색 트리의 성능 분석
9.5 이진 탐색 트리의 응용: 영어 사전
연습문제
프로그래밍 프로젝트

CHAPTER 10 우선순위 큐
10.1 우선순위 큐
우선순위 큐란?
우선순위 큐 추상 자료형
10.2 우선순위 큐의 구현 방법
배열을 사용하는 방법
연결 리스트를 사용하는 방법
힙을 사용하는 방법
10.3 힙(Heap)
힙의 개념
힙의 구현 방법
힙의 기본 틀 설계
삽입 연산
삭제 연산
힙의 복잡도 분석
10.4 힙의 응용: 힙 정렬
힙을 사용한 정렬
STL의 우선순위 큐를 사용한 정렬
10.5 힙의 응용: 허프만 코드
허프만 코드란?
허프만 코드 생성 방법
허프만 코드 구현
연습문제
프로그래밍 프로젝트

CHAPTER 11 그래프
11.1 그래프란?
그래프의 역사
그래프의 종류
그래프의 용어
그래프의 추상 자료형
11.2 그래프의 표현
인접 행렬을 이용한 그래프의 표현
인접 행렬을 이용한 그래프 클래스의 구현
인접 리스트를 이용한 그래프의 표현
인접 리스트를 이용한 그래프 클래스의 구현
11.3 그래프의 탐색
깊이 우선 탐색
깊이 우선 탐색의 구현
너비 우선 탐색
너비 우선 탐색의 구현
11.4 연결 성분
11.5 신장 트리
11.6 위상 정렬
연습문제
프로그래밍 프로젝트

CHAPTER 12 가중치 그래프
12.1 가중치 그래프란?
12.2 가중치 그래프의 표현
가중치의 표현
인접 행렬을 이용한 가중치 그래프 구현
12.3 최소 비용 신장 트리
최소 비용 신장 트리란?
Kruskal의 MST 알고리즘
Kruskal 알고리즘의 구현
Prim의 MST 알고리즘
Prim 알고리즘의 구현
12.4 최단 경로
최단 경로 문제란?
Dijkstra의 최단 경로 알고리즘
Dijkstra 알고리즘의 구현
Floyd의 최단 경로 알고리즘
Floyd 알고리즘의 구현
연습문제
프로그래밍 프로젝트

CHAPTER 13 정렬
13.1 정렬이란?
정렬 알고리즘의 분류
13.2 선택 정렬
선택 정렬의 원리
선택 정렬 알고리즘
선택 정렬의 구현
전체 프로그램
선택 정렬의 시간 복잡도 분석
13.3 삽입 정렬
삽입 정렬의 원리
삽입 정렬의 알고리즘
삽입 정렬의 구현
삽입 정렬의 시간 복잡도 분석
함수 포인터를 사용한 정렬 알고리즘의 구현
13.4 버블 정렬
버블 정렬의 원리
버블 정렬의 알고리즘
버블 정렬의 구현
버블 정렬의 시간 복잡도 분석
13.5 셸 정렬
셸 정렬의 원리
셸 정렬의 구현
셸 정렬의 분석
13.6 합병 정렬
합병 정렬의 개념
합병 정렬 알고리즘
합병 정렬의 구현
합병 정렬의 복잡도 분석
13.7 퀵 정렬
퀵 정렬의 개념
퀵 정렬 알고리즘
partition 알고리즘
전체 프로그램
퀵 정렬의 복잡도 분석
퀵 정렬 라이브러리 함수의 사용
13.8 힙 정렬
힙 정렬의 개념
힙 정렬의 복잡도 분석
13.9 기수 정렬
기수 정렬의 원리
기수 정렬의 알고리즘
기수 정렬의 구현
기수 정렬의 분석
13.10 정렬 알고리즘의 비교
연습문제
프로그래밍 프로젝트

CHAPTER 14 탐색
14.1 탐색이란?
맵 이란?
14.2 정렬되지 않은 배열에서의 탐색
순차 탐색
14.3 정렬된 배열에서의 탐색
정렬된 배열에서의 개선된 순차 탐색
정렬된 배열에서의 이진 탐색
색인 순차 탐색
보간 탐색
14.4 균형 이진 탐색 트리
AVL 트리란?
AVL 트리의 삽입 연산
AVL 트리의 구현
14.5 해싱을 이용한 탐색
해싱이란?
이상적인 해싱과 실제의 해싱
해시 함수
14.6 해싱의 오버플로우 처리 방법
선형 조사법
이차 조사법
이중 해싱법
체이닝
해싱의 성능 분석
해싱과 다른 탐색 방법의 비교
14.7 STL 맵 클래스의 활용: 영어 단어장
연습문제
프로그래밍 프로젝트

저자소개

생년월일 -

1983년 서울대학교 전자공학과 공학사. 1985년 한국과학기술원 전기및전자공학과 공학석사. 1993년 한국과학기술원 전기및전자공학과 공학박사. 1985~1988년 삼성전자 종합연구소 주임 연구원. 1993년~현재 순천향대학교 컴퓨터 공학과 교수. 2005년 캐나다 UBC 방문 교수.

생년월일 -

해당작가에 대한 소개가 없습니다.

전공도서/대학교재 분야에서 많은 회원이 구매한 책

    리뷰

    0.0 (총 0건)

    구매 후 리뷰 작성 시, 북피니언 지수 최대 600점

    리뷰쓰기

    기대평

    작성시 유의사항

    평점
    0/200자
    등록하기

    기대평

    8.0

    판매자정보

    • 인터파크도서에 등록된 오픈마켓 상품은 그 내용과 책임이 모두 판매자에게 있으며, 인터파크도서는 해당 상품과 내용에 대해 책임지지 않습니다.

    판매자

    (주)교보문고

    상호

    (주)교보문고

    사업자 종류

    법인사업자

    사업자번호

    102-81-11670

    연락처

    1544-1900

    이메일

    callcenter@kyobobook.co.kr

    통신판매 신고 번호

    01-0653

    영업소재지

    서울특별시 종로구 종로 1(종로1가,교보빌딩)

    교환/환불

    반품/교환 방법

    ‘마이페이지 > 취소/반품/교환/환불’ 에서 신청 또는 1:1 문의 게시판 및 고객센터(1577-2555)에서 신청 가능

    반품/교환가능 기간

    변심 반품의 경우 출고완료 후 6일(영업일 기준) 이내까지만 가능
    단, 상품의 결함 및 계약내용과 다를 경우 문제점 발견 후 30일 이내

    반품/교환 비용

    변심 혹은 구매착오로 인한 반품/교환은 반송료 고객 부담
    상품이나 서비스 자체의 하자로 인한 교환/반품은 반송료 판매자 부담

    반품/교환 불가 사유

    ·소비자의 책임 있는 사유로 상품 등이 손실 또는 훼손된 경우
    (단지 확인을 위한 포장 훼손은 제외)

    ·소비자의 사용, 포장 개봉에 의해 상품 등의 가치가 현저히 감소한 경우
    예) 화장품, 식품, 가전제품(악세서리 포함) 등

    ·복제가 가능한 상품 등의 포장을 훼손한 경우
    예) 음반/DVD/비디오, 소프트웨어, 만화책, 잡지, 영상 화보집

    ·시간의 경과에 의해 재판매가 곤란한 정도로 가치가 현저히 감소한 경우

    ·전자상거래 등에서의 소비자보호에 관한 법률이 정하는 소비자 청약철회 제한 내용에 해당되는 경우

    상품 품절

    공급사(출판사) 재고 사정에 의해 품절/지연될 수 있음

    소비자 피해보상
    환불지연에 따른 배상

    ·상품의 불량에 의한 교환, A/S, 환불, 품질보증 및 피해보상 등에 관한 사항은 소비자분쟁해결 기준 (공정거래위원회 고시)에 준하여 처리됨

    ·대금 환불 및 환불지연에 따른 배상금 지급 조건, 절차 등은 전자상거래 등에서의 소비자 보호에 관한 법률에 따라 처리함

    배송안내

    • 교보문고 상품은 택배로 배송되며, 출고완료 1~2일내 상품을 받아 보실 수 있습니다.

    • 출고가능 시간이 서로 다른 상품을 함께 주문할 경우 출고가능 시간이 가장 긴 상품을 기준으로 배송됩니다.

    • 군부대, 교도소 등 특정기관은 우체국 택배만 배송가능합니다.

    • 배송비는 업체 배송비 정책에 따릅니다.

    • - 도서 구매 시, 1만 원 이상 무료, 1만원 미만 2천 원 - 상품별 배송비가 있는 경우, 상품별 배송비 정책 적용