알기쉬운 자료구조 - C언어

알기쉬운 자료구조 - C언어

$29.61
Description
?자료구조 과목이 대학의 2학년 과정에서 개설되는 추세에 따라 기존의 자료구조 과목에서 가능한 난이도와 분량을 조절하여 이해하기 쉽도록 하였다.
?난이도가 깊은 알고리즘들은 자료구조의 후속 과목인“알고리즘”에서 배운다는 전제 아래 생략하였다.
?알고리즘 기술은 어느 언어나 상관없지만, 구현 언어는 현재 C 언어를 중점으로 하였으며, 앞으로 Java를 추가하여 객체지향 언어에서 자료구조 활용을 이해할 수 있도록 내용을 추가하고 예제를 만들 예정이다.
저자

박우창

서울대학교계산통계학과를졸업하고동대학원에서박사학위를취득했다.1988년부터현재까지덕성여자대학교컴퓨터공학과교수로재직중이며,데이터베이스와자료구조등을강의하고있다.저서로『알기쉬운자료구조-C언어』(21세기사,2019),『데이터마이닝』(자유아카데미,2004)등이있다.

목차

PREFACE

CHAPTER1소프트웨어개발과자료구조
1.1소프트웨어개발
1.1.1소프트웨어개발의예
1.12소프트웨어생명주기(SoftwareLifeCycle)
1.2자료구조의개념
1.2.1자료구조의개념
1.2.2좋은소프트웨어(프로그램)란ㆍ
1.2.3프로그램과자료구조의관계
1.2.4자료구조에서배우는내용
ㆍ정리
ㆍEXERCISE
ㆍ프로그래밍프로젝트

CHAPTER2알고리즘과알고리즘의성능
2.1알고리즘
2.1.1일상생활의알고리즘의예
2.1.2컴퓨터알고리즘의예
2.2정렬과검색알고리즘
2.2.1선택정렬알고리즘
2.2.2이진검색알고리즘
2.3알고리즘의성능
2.3.1공간복잡도(SpaceComplexity)
2.3.2시간복잡도(Timecomplexity)
2.4알고리즘복잡도의표현법
2.4.1O-표기법
2.4.2알고리즘O(f(n))함수와함수의값
ㆍ정리
ㆍEXERCISE
ㆍ프로그래밍프로젝트

CHAPTER3배열자료구조
3.1배열의개념
3.1.1배열의개념
3.1.2배열과기억장소
3.2포인터타입
3.3구조체(struct)
3.3.1구조체
3.3.2자기참조구조체(self-referentialstructures)
3.4희소(Sparce)행렬-배열의응용예
3.5다차원배열의저장
ㆍ정리
ㆍEXERCISE
ㆍ프로그래밍프로젝트

CHAPTER4스택과큐자료구조
4.1자료구조와연산모델
4.2스택(Stack)
4.2.1스택의정의
4.2.2스택프로그램예-C언어
4.2.3스택프로그램예-Java언어
4.3큐(Queue)
4.4원형큐(circularqueue)
ㆍ정리
ㆍEXERCISE
ㆍ프로그래밍프로젝트

CHAPTER5스택의응용
5.1후위표기법
5.1.1수식계산-사람과컴퓨터
5.1.2중위식을후위식으로바꾸기
5.2스택을이용한후위식변환
5.2.1후위식변환프로그램
5.3스택을이용한후위식계산
5.3.1후위식계산과정
5.3.2후위식계산프로그램
ㆍ정리
ㆍEXERCISE
ㆍ프로그래밍프로젝트

CHAPTER6연결리스트
6.1포인터타입(Pointers)
6.2단순연결리스트(SinglyLinkedLists)
6.3연결리스트를이용한스택과큐의구현
6.3.1연결리스트를이용한스택의구현(dynamicallylinkedstacks)
6.3.2연결리스트를이용한큐의구현(dynamicallylinkedqueues)
6.4연결리스트응용
6.4.1다항식(Polynomials)과연결리스트
6.4.2연결리스트를이용한다항식의덧셈
6.5리스트와연결리스트(ListandLinkedList)
ㆍ정리
ㆍEXERCISE
ㆍ프로그래밍프로젝트

CHAPTER7고급연결리스트
7.1원형연결리스트(CircularlyLinkedLists)
7.2이중연결리스트(DoublyLinkedList)
7.3연결리스트알고리즘들
7.3.1두개의연결리스트를한개의연결리스트로연결
7.3.2원형연결리스트의노드의개수세기
7.3.3연결리스트를역순으로만들기
ㆍ정리
ㆍEXERCISE
ㆍ프로그래밍프로젝트

CHAPTER8트리자료구조
8.1트리의개념
8.1.1트리자료구조
8.1.2트리구조를컴퓨터내부에저장하는방법
8.1.3차수가n인트리를차수가2인트리로저장하는방법
8.2이진(Binary)트리
8.3이진트리의저장
8.3.1배열을이용한저장
8.3.2연결리스트를이용한트리의표현
ㆍ정리
ㆍEXERCISE

CHAPTER9트리의탐색
9.1이진트리탐색알고리즘
9.1.1중위탐색(inordertraversal)
9.1.2전위탐색(preordertraversal)
9.1.3후위탐색(postordertraversal)
9.1.4레벨탐색(levelordertraversal)
9.1.5트리탐색프로그래밍
9.2쓰레드(Threaded)이진트리
9.3이진트리에관한알고리즘
9.3.1이진트리복사
9.3.2이진트리동등비교
ㆍ정리
ㆍEXERCISE
ㆍ프로그래밍프로젝트

CHAPTER10정렬
10.1버블정렬(bubblesort)
10.2삽입정렬(InsertionSort)
10.3퀵정렬(QuickSort)
10.4힙정렬(HeapSort)
10.4.1힙구조
10.4.2힙정렬(heapsort)
10.5정렬알고리즘요약
ㆍ정리
ㆍEXERCISE
ㆍ프로그래밍프로젝트

CHAPTER11검색(Search)
11.1선형검색(linearsearch)
11.2이진검색(BinarySearch)
11.3해시검색(HashSearch)
11.4이진탐색트리(BST,BinarySearchTree)
11.5AVL트리
11.6B-트리
ㆍ정리
ㆍEXERCISE
ㆍ프로그래밍프로젝트

CHAPTER12그래프개념과그래프탐색
12.1그래프의개념
12.2그래프의표현
12.3그래프탐색
12.3.1그래프탐색-깊이우선탐색(depthfirstsearch)
12.3.2너비우선탐색(breadthfirstsearch)
12.3.3연결요소의계산
ㆍ정리
ㆍEXERCISE

CHAPTER13그래프의응용
13.1스패닝(Spanning)트리
13.2최소스패닝트리
13.2.1Kruskal알고리즘
13.2.2Prim알고리즘
13.3최단경로(shortestpath)문제
13.4이행성폐포(transitiveclosure)문제
ㆍ정리
ㆍEXERCISE

참고문헌