간편결제, 신용카드 청구할인
카카오페이 3,000원
(카카오페이 결제시 최대할인 3천원 / 5만원 이상 결제, 기간 중 1회)
삼성카드 6% (22,850원)
(삼성카드 6% 청구할인)
인터파크 롯데카드 5% (23,090원)
(최대할인 10만원 / 전월실적 40만원)
북피니언 롯데카드 30% (17,010원)
(최대할인 3만원 / 3만원 이상 결제)
NH쇼핑&인터파크카드 20% (19,440원)
(최대할인 4만원 / 2만원 이상 결제)
Close

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

소득공제

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

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

27,000원

  • 24,300 (10%할인)

    270P (1%적립)

할인혜택
적립혜택
  • I-Point 적립은 출고완료 후 14일 이내 마이페이지에서 적립받기한 경우만 적립됩니다.
  • 추가혜택
    배송정보
    주문수량
    감소 증가
    • 이벤트/기획전

    • 연관도서

    • 사은품(7)

    책소개

    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 맵 클래스의 활용- 영어 단어장
    연습문제
    프로그래밍 프로젝트

    저자소개

    생년월일 -
    출생지 -
    출간도서 4종
    판매수 563권

    1989년 경북대학교 전자공학과 공학사
    1991년 한국과학기술원 전기및전자공학과 공학석사
    1995년 한국과학기술원 전기및전자공학과 공학박사
    1995~1999년 LG산전연구소 선임연구원
    1999년~현재 한국기술교육대학교 컴퓨터공학부 교수
    2005, 2012년 미국 조지 워싱턴대, UTSA 방문 교수

    생년월일 -
    출생지 -
    출간도서 21종
    판매수 17,640권

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

    E-mail: chunik@sch.ac.kr

    이 책과 내용이 비슷한 책 ? 내용 유사도란? 이 도서가 가진 내용을 분석하여 기준 도서와 얼마나 많이 유사한 콘텐츠를 많이 가지고 있는가에 대한 비율입니다.

      리뷰

      0.0 (총 0건)

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

      리뷰쓰기

      기대평

      작성시 유의사항

      평점
      0/200자
      등록하기

      기대평

      10.0

      교환/환불

      교환/환불 방법

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

      교환/환불 가능 기간

      고객변심은 출고완료 다음날부터 14일 까지만 교환/환불이 가능함

      교환/환불 비용

      고객변심 또는 구매착오의 경우에만 2,500원 택배비를 고객님이 부담함

      교환/환불 불가사유

      반품접수 없이 반송하거나, 우편으로 보낼 경우 상품 확인이 어려워 환불이 불가할 수 있음
      배송된 상품의 분실, 상품포장이 훼손된 경우, 비닐랩핑된 상품의 비닐 개봉시 교환/반품이 불가능함

      소비자 피해보상

      소비자 피해보상의 분쟁처리 등에 관한 사항은 소비자분쟁해결기준(공정거래위원회 고시)에 따라 비해 보상 받을 수 있음
      교환/반품/보증조건 및 품질보증 기준은 소비자기본법에 따른 소비자 분쟁 해결 기준에 따라 피해를 보상 받을 수 있음

      기타

      도매상 및 제작사 사정에 따라 품절/절판 등의 사유로 주문이 취소될 수 있음(이 경우 인터파크도서에서 고객님께 별도로 연락하여 고지함)

      배송안내

      • 인터파크 도서 상품은 택배로 배송되며, 출고완료 1~2일내 상품을 받아 보실 수 있습니다

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

      • 군부대, 교도소 등 특정기관은 우체국 택배만 배송가능하여, 인터파크 외 타업체 배송상품인 경우 발송되지 않을 수 있습니다.

      • 배송비

      도서(중고도서 포함) 구매

      2,000원 (1만원이상 구매 시 무료배송)

      음반/DVD/잡지/만화 구매

      2,000원 (2만원이상 구매 시 무료배송)

      도서와 음반/DVD/잡지/만화/
      중고직배송상품을 함께 구매

      2,000원 (1만원이상 구매 시 무료배송)

      업체직접배송상품 구매

      업체별 상이한 배송비 적용