C언어를 이용한 체험! 자료구조 (DATA STRUCTURES)

C언어를 이용한 체험! 자료구조 (DATA STRUCTURES)

$35.01
Description
▶ C언어에 관한 내용을 담은 전문서적입니다.
저자

정기철

저자정기철은컴퓨터공학을전공하고현재숭실대학교IT대학미디어학부교수로재직중이며,인공지능,HCI등의분야를공부하고있다.
급변하는지금의IT환경에서단순한지식이나기술의전달및암기위주의공부대신기본적인원리에대한이해,문제해결방법등이더중요하다고느끼면서이를위한수업방법및저서개발에노력하고있다.
스템개론]등다수가있다.

목차

PARTI:본격적인자료구조공부에앞서

CHAPTER1프로그래밍기초와소프트웨어공학3
1.1소프트웨어공학5
1.2소프트웨어개발주기6
1.3문제해결을위한프로그래밍의절차7
1.4일반적인코딩팁10
1.5이책에서사용하는코딩규칙11
1.6디버깅하는방법13

CHAPTER2자료구조와알고리즘의기초15
2.1자료구조란?17
2.2일상생활에서사용하는자료구조들의예19
2.3알고리즘이란?22
2.3.1알고리즘효율성분석#123
2.3.2알고리즘효율성분석#229
2.3.3BIG-O표기법34
2.4추상데이터타입(AbstractDataType:ADT)36
2.5기본자료형39
연습문제40

CHAPTER3VisualStudio와openFrameworks기초43
3.1openFrameworks와VisualStudio설치46
3.1.1openFrameworks설치47
3.1.2VisualStudioCommunity2017버전설치48
3.1.3VisualStudio에서의C언어를이용한콘솔프로그래밍51
3.2오픈프레임웍스프로그래밍시작64
3.2.1오픈프레임웍스라이브러리의폴더구조64
3.2.2오픈프레임웍스empty프로그램제작66
3.2.3오픈프레임웍스소스코드구조72
3.2.4오픈프레임웍스텍스트모드프로그램제작73
3.2.5오픈프레임웍스그래픽모드프로그램제작76
3.3파일분할및헤더파일구성방법#181
3.3.1오픈프레임웍스공움직이기82
3.3.2오픈프레임웍스라켓으로공반사하기87
3.3.3오픈프레임웍스big-O그래프로비교해보기90
3.4헤더파일에적는내용#292
3.4.1헤더파일(간단한경우)92
3.4.2헤더파일(조금더복잡한경우)94

PARTII:자료구조기초(선형자료구조)

CHAPTER4배열(ARRAY)99
4.11차원배열101
4.1.11차원배열정의101
4.1.21차원배열사용103
4.1.3오픈프레임웍스1차원배열의응용:돗수분포표/돗수분포그래프109
4.22차원배열112
4.2.12차원배열정의113
4.2.22차원배열사용:(기본)행렬연산구현114
4.2.3오픈프레임웍스벽돌깨기게임에벽돌배치하기121
4.2.4오픈프레임웍스3차원배열의응용:숫자인식프로그램125
4.2.5openFrameworks사용을위한객체지향프로그래밍소개134
4.2.6오픈프레임웍스2차원배열==이미지(image)137
4.3구조체(struct)140
4.3.1구조체변수와일반변수의같은점,다른점142
4.3.2함수의파라미터로사용되는구조체144
4.3.3typedef147
4.3.4심화2차원행렬연산구현149
4.4희소행렬(稀少,sparsematrix)154
4.4.1(기본#1)희소행렬구현155
4.4.2(기본#2)희소행렬구현157
4.4.3심화희소행렬구현162
4.5파일입출력170
4.5.1표준입·출력정리171
4.5.2텍스트파일입·출력함수173
4.5.3새파일만들어서문자쓰기174
4.5.4기존파일읽기176
4.5.5VisualStduio에서파일사용하기177
4.6심화영한단어장180
연습문제184

CHAPTER5배열리스트(arraylist)187
5.1배열리스트의사코드190
5.2배열리스트구현191
5.3보다실용적인리스트구현방법198
5.4배열리스트관련알고리즘보충설명205
5.4.1검색205
5.4.2추가211
5.4.3삭제212
5.4.4정렬213
5.5오픈프레임웍스벽돌깨기게임총알기능217

CHAPTER6연결리스트(linkedlist)225
6.1연결리스트기본228
6.2C언어에서의포인터231
6.2.1포인터고찰232
6.2.2포인터변수의연산239
6.2.3포인터변수의장점243
6.2.4배열과포인터의차이점244
6.2.5포인터와문자열246
6.2.6포인터를이용한동적메모리할당249
6.2.7포인터배열254
6.2.8이중포인터255
6.3단일연결리스트(singlylinkedlist)ADT256
6.4단일연결리스트구현256
6.5배열리스트와연결리스트의비교267
6.6오픈프레임웍스파티클효과구현267
6.7원형(환형)연결리스트(circularlinkedlist)273
6.8이중연결리스트(doublylinkedlists)279
연습문제284

CHAPTER7스택(stacks)287
7.11차원배열을이용한스택구현294
7.2응용괄호매칭검사297
7.3응용후위표기식(postfix)계산301
7.3.1중위표기법의후위표기법변경코드303
7.3.2후위표기법계산코드305
7.4응용미로탈출308
7.4.1스택을이용한구현308
7.4.2재귀함수(recursivefunction)309
7.4.3오픈프레임웍스미로탈출:스택이용312
7.4.4오픈프레임웍스미로탈출:재귀함수이용316
7.5오픈프레임웍스재귀함수의응용319
7.5.1프랙탈319
7.5.2몬드리안그림320
연습문제322

CHAPTER8큐(queues)325
8.11차원배열을이용한큐구현328
8.21차원배열을이용한원형큐구현332
8.31차원배열을이용한원형큐구현(배열의모든원소사용가능)336
8.4심화큐의응용338
8.4.1생산자-소비자문제(ProducerandConsumerProblem)338
8.4.2임계영역(criticalsection)339
8.4.3멀티쓰레드프로그래밍342
연습문제346

PARTIII:자료구조중급(비선형자료구조)

CHAPTER9트리(trees)349
9.1트리기초352
9.1.1트리에서사용하는용어정리353
9.1.2트리의종류354
9.2이진트리(binarytree)357
9.2.1배열을이용한이진트리구현360
9.2.2배열을이용한결정트리(decisiontree)366
9.2.3포인터를이용한이진트리구현370
9.2.4포인터를이용한이진트리구현(추가)374
9.2.5이진트리순회(traversal)376
9.2.6이진트리와관련된다양한연산384
9.3이진탐색트리(binarysearchtree)387
9.3.1검색389
9.3.2추가391
9.3.3삭제393
9.3.4테스트결과396
9.4심화게임트리(gametree)398
9.4.1Min-MaxTree400
9.4.2정적형세판단(staticevaluation)403
9.4.3Min-Max트리구현409
9.4.4오픈프레임웍스틱택토구현410
연습문제416


CHAPTER10그래프(graphs)417
10.1그래프기초420
10.2그래프구현423
10.2.1인접행렬을이용한구현423
10.2.2인접리스트를이용한구현435
10.3응용지하철노선데이터443
10.4그래프탐색451
10.4.1깊이우선탐색452
10.4.2너비우선탐색453
10.4.3그래프탐색구현455
10.5연결성분(connectedcomponent)459
10.6신장트리(spanningtrees)463
10.7최소신장트리(minimumspanningtrees:MST)466
10.7.1Kruskal의MST알고리즘개괄466
10.7.2Prim의MST알고리즘478
10.8최단경로(ShortestPath)478
10.8.1데익스트라(Dijkstra)알고리즘개요479
10.8.2데익스트라알고리즘구현485
10.8.3A*알고리즘489
10.8.4Floyd알고리즘491
연습문제492

PARTIV:자료구조고급
CHAPTER11우선순위큐(priorityqueue)495
11.1정렬알고리즘497
11.1.1선택정렬(selectionsorting)498
11.1.2병합정렬(mergesorting)500
11.2우선순위큐505
11.2.1배열을이용한우선순위큐506
11.2.2연결리스트를이용한우선순위큐506
11.3힙(heap)507
11.3.1힙의연산509
11.3.2힙의구현510
연습문제516

CHAPTER12해싱(hashing)517
12.1해싱의기본519
12.2해시함수(hashfunction)와해시테이블(hashtable)521
12.2.1간단한해시함수:자리수선택522
12.2.2간단한해싱함수구현523
12.3충돌해결책525
12.3.1오픈어드레싱(openaddressing)525
12.3.2체이닝(chaining)526
12.3.3체이닝을이용한해싱구현527
연습문제534
INDEX535

출판사 서평

그동안자료구조수업에아쉬움을채워줄신간교재!!
★자료구조의구현을난이도에따라서여러방법으로소개
-간단한방법과조금복잡하지만효율적인방법을차례로기술
★게임과인공지능에적용되는자료구조예제포함
★시각적출력을이용한학습흥미부여
★실용적인데이터사용