FREE SHIPING FOR OVER $100 - MOSTLY SHIP VIA USPS GROUND ADVANTAGE %D days %H:%M:%S
정기철
저자정기철은컴퓨터공학을전공하고현재숭실대학교IT대학미디어학부교수로재직중이며,인공지능,HCI등의분야를공부하고있다.급변하는지금의IT환경에서단순한지식이나기술의전달및암기위주의공부대신기본적인원리에대한이해,문제해결방법등이더중요하다고느끼면서이를위한수업방법및저서개발에노력하고있다.스템개론]등다수가있다.
PARTI:본격적인자료구조공부에앞서CHAPTER1프로그래밍기초와소프트웨어공학31.1소프트웨어공학51.2소프트웨어개발주기61.3문제해결을위한프로그래밍의절차71.4일반적인코딩팁101.5이책에서사용하는코딩규칙111.6디버깅하는방법13CHAPTER2자료구조와알고리즘의기초152.1자료구조란?172.2일상생활에서사용하는자료구조들의예192.3알고리즘이란?222.3.1알고리즘효율성분석#1232.3.2알고리즘효율성분석#2292.3.3BIG-O표기법342.4추상데이터타입(AbstractDataType:ADT)362.5기본자료형39연습문제40CHAPTER3VisualStudio와openFrameworks기초433.1openFrameworks와VisualStudio설치463.1.1openFrameworks설치473.1.2VisualStudioCommunity2017버전설치483.1.3VisualStudio에서의C언어를이용한콘솔프로그래밍513.2오픈프레임웍스프로그래밍시작643.2.1오픈프레임웍스라이브러리의폴더구조643.2.2오픈프레임웍스empty프로그램제작663.2.3오픈프레임웍스소스코드구조723.2.4오픈프레임웍스텍스트모드프로그램제작733.2.5오픈프레임웍스그래픽모드프로그램제작763.3파일분할및헤더파일구성방법#1813.3.1오픈프레임웍스공움직이기823.3.2오픈프레임웍스라켓으로공반사하기873.3.3오픈프레임웍스big-O그래프로비교해보기903.4헤더파일에적는내용#2923.4.1헤더파일(간단한경우)923.4.2헤더파일(조금더복잡한경우)94PARTII:자료구조기초(선형자료구조)CHAPTER4배열(ARRAY)994.11차원배열1014.1.11차원배열정의1014.1.21차원배열사용1034.1.3오픈프레임웍스1차원배열의응용:돗수분포표/돗수분포그래프1094.22차원배열1124.2.12차원배열정의1134.2.22차원배열사용:(기본)행렬연산구현1144.2.3오픈프레임웍스벽돌깨기게임에벽돌배치하기1214.2.4오픈프레임웍스3차원배열의응용:숫자인식프로그램1254.2.5openFrameworks사용을위한객체지향프로그래밍소개1344.2.6오픈프레임웍스2차원배열==이미지(image)1374.3구조체(struct)1404.3.1구조체변수와일반변수의같은점,다른점1424.3.2함수의파라미터로사용되는구조체1444.3.3typedef1474.3.4심화2차원행렬연산구현1494.4희소행렬(稀少,sparsematrix)1544.4.1(기본#1)희소행렬구현1554.4.2(기본#2)희소행렬구현1574.4.3심화희소행렬구현1624.5파일입출력1704.5.1표준입·출력정리1714.5.2텍스트파일입·출력함수1734.5.3새파일만들어서문자쓰기1744.5.4기존파일읽기1764.5.5VisualStduio에서파일사용하기1774.6심화영한단어장180연습문제184CHAPTER5배열리스트(arraylist)1875.1배열리스트의사코드1905.2배열리스트구현1915.3보다실용적인리스트구현방법1985.4배열리스트관련알고리즘보충설명2055.4.1검색2055.4.2추가2115.4.3삭제2125.4.4정렬2135.5오픈프레임웍스벽돌깨기게임총알기능217CHAPTER6연결리스트(linkedlist)2256.1연결리스트기본2286.2C언어에서의포인터2316.2.1포인터고찰2326.2.2포인터변수의연산2396.2.3포인터변수의장점2436.2.4배열과포인터의차이점2446.2.5포인터와문자열2466.2.6포인터를이용한동적메모리할당2496.2.7포인터배열2546.2.8이중포인터2556.3단일연결리스트(singlylinkedlist)ADT2566.4단일연결리스트구현2566.5배열리스트와연결리스트의비교2676.6오픈프레임웍스파티클효과구현2676.7원형(환형)연결리스트(circularlinkedlist)2736.8이중연결리스트(doublylinkedlists)279연습문제284CHAPTER7스택(stacks)2877.11차원배열을이용한스택구현2947.2응용괄호매칭검사2977.3응용후위표기식(postfix)계산3017.3.1중위표기법의후위표기법변경코드3037.3.2후위표기법계산코드3057.4응용미로탈출3087.4.1스택을이용한구현3087.4.2재귀함수(recursivefunction)3097.4.3오픈프레임웍스미로탈출:스택이용3127.4.4오픈프레임웍스미로탈출:재귀함수이용3167.5오픈프레임웍스재귀함수의응용3197.5.1프랙탈3197.5.2몬드리안그림320연습문제322CHAPTER8큐(queues)3258.11차원배열을이용한큐구현3288.21차원배열을이용한원형큐구현3328.31차원배열을이용한원형큐구현(배열의모든원소사용가능)3368.4심화큐의응용3388.4.1생산자-소비자문제(ProducerandConsumerProblem)3388.4.2임계영역(criticalsection)3398.4.3멀티쓰레드프로그래밍342연습문제346PARTIII:자료구조중급(비선형자료구조)CHAPTER9트리(trees)3499.1트리기초3529.1.1트리에서사용하는용어정리3539.1.2트리의종류3549.2이진트리(binarytree)3579.2.1배열을이용한이진트리구현3609.2.2배열을이용한결정트리(decisiontree)3669.2.3포인터를이용한이진트리구현3709.2.4포인터를이용한이진트리구현(추가)3749.2.5이진트리순회(traversal)3769.2.6이진트리와관련된다양한연산3849.3이진탐색트리(binarysearchtree)3879.3.1검색3899.3.2추가3919.3.3삭제3939.3.4테스트결과3969.4심화게임트리(gametree)3989.4.1Min-MaxTree4009.4.2정적형세판단(staticevaluation)4039.4.3Min-Max트리구현4099.4.4오픈프레임웍스틱택토구현410연습문제416CHAPTER10그래프(graphs)41710.1그래프기초42010.2그래프구현42310.2.1인접행렬을이용한구현42310.2.2인접리스트를이용한구현43510.3응용지하철노선데이터44310.4그래프탐색45110.4.1깊이우선탐색45210.4.2너비우선탐색45310.4.3그래프탐색구현45510.5연결성분(connectedcomponent)45910.6신장트리(spanningtrees)46310.7최소신장트리(minimumspanningtrees:MST)46610.7.1Kruskal의MST알고리즘개괄46610.7.2Prim의MST알고리즘47810.8최단경로(ShortestPath)47810.8.1데익스트라(Dijkstra)알고리즘개요47910.8.2데익스트라알고리즘구현48510.8.3A*알고리즘48910.8.4Floyd알고리즘491연습문제492PARTIV:자료구조고급CHAPTER11우선순위큐(priorityqueue)49511.1정렬알고리즘49711.1.1선택정렬(selectionsorting)49811.1.2병합정렬(mergesorting)50011.2우선순위큐50511.2.1배열을이용한우선순위큐50611.2.2연결리스트를이용한우선순위큐50611.3힙(heap)50711.3.1힙의연산50911.3.2힙의구현510연습문제516CHAPTER12해싱(hashing)51712.1해싱의기본51912.2해시함수(hashfunction)와해시테이블(hashtable)52112.2.1간단한해시함수:자리수선택52212.2.2간단한해싱함수구현52312.3충돌해결책52512.3.1오픈어드레싱(openaddressing)52512.3.2체이닝(chaining)52612.3.3체이닝을이용한해싱구현527연습문제534INDEX535
그동안자료구조수업에아쉬움을채워줄신간교재!!★자료구조의구현을난이도에따라서여러방법으로소개-간단한방법과조금복잡하지만효율적인방법을차례로기술★게임과인공지능에적용되는자료구조예제포함★시각적출력을이용한학습흥미부여★실용적인데이터사용