제 6 장 그래프

Size: px
Start display at page:

Download "제 6 장 그래프"

Transcription

1 제 장 그래프 Copyright DBLAB, Seoul National University

2 그래프추상데이타타입 () 개요.. Koenigsberg 다리문제 차수 (degree) : 정점에연결된간선의수 오일러행로 (Eulerian walk) c C d g a A Kneiphof B e b D f c a C A B d b e g f D (a) Koenigsberg 의 Pregal 강의일부 (b) 오일러의그래프 Copyright DBLAB, Seoul National University

3 그래프추상데이타타입 () 정의 그래프 G : 개의집합 V 와 E 로구성 V : 공집합이아닌정점 (vertex) 의유한집합 E : 간선 (edges) 이라고하는정점쌍들의집합 표기 : G=(V,E) 무방향그래프 (undirected graph) 간선을나타내는정점의쌍에순서없음 방향그래프 (directed graph) 방향을가지는정점의쌍 <u,v> 로표시 (u 는꼬리 (tail), v 는머리 (head)) <v,u> 와 <u,v> 는서로다른간선 Copyright DBLAB, Seoul National University

4 그래프추상데이타타입 () 예제그래프 G G G V(G )={,,,} E(G )={(,),(,),(,),(,),(,),(,)} V(G )={,,,,,,) E(G )={(,),(,),(,),(,),(,),(,)} V(G )={,,} E(G )={<,>,<,>,<,>} Copyright DBLAB, Seoul National University

5 그래프추상데이타타입 () 정의 그래프의제한사항 자기간선 (self edge) 또는자기루프 (self loop) 없음 동일간선의중복없음 ( 다중그래프 (multigraph) 는이제한이없음 자기간선을가진그래프 다중그래프 완전그래프 (complete graph) : n 개의정점과 n(n-)/ 개의간선을가진그래프 (u,v) 가 E(G) 의한간선이라면 u 와 v 는인접 (adjacent) 한다 간선 (u,v) 는정점 u 와 v 에부속 (incident) 된다 그래프 G 의부분그래프 (subgraph) : V(G') V(G) 이고 E(G') E(G) 인그래프 G' Copyright DBLAB, Seoul National University

6 그래프추상데이타타입 () 정점 u 로부터정점 v 까지의경로 (path) 그래프 G 에서 (u,i ), (i,i ),..., (i k,v) 를 E(G) 에속한 간선들이라할때, 정점열 u, i, i,..., i k, v 를말함 경로의길이 (length) 경로상에있는간선의수 단순경로 (simple path) 경로상에서처음과마지막을제외한모든정점들이서로다름 단순방향경로 (simple directed path) 사이클 (cycle) 처음과마지막정점이같은단순경로 Copyright DBLAB, Seoul National University

7 그래프추상데이타타입 () G (i) (ii) (iii) (iv) G 의서브그래프 G (i) (ii) (iii) (iv) G 의서브그래프 Copyright DBLAB, Seoul National University

8 그래프추상데이타타입 () 연결요소 (connected component) : 최대연결부분그래프 (maximal connected subgraph) 강력연결 (strongly connected) : 방향그래프에서 V(G) 에속한서로다른두정점 u, v 의모든쌍에대해서, u 에서 v 로, 또한 v 에서 u 로의방향경로 (directed path) 가존재 강력연결요소 (strongly connected component) : 강하게연결된최대부분그래프 H H G 두개의연결요소를갖는그래프 Copyright DBLAB, Seoul National University 8

9 그래프추상데이타타입 (8) G 의강력연결요소 차수 (degree) : 정점에부속한간선들의수 진입차수 (in-degree) 임의의정점 v 가머리가되는간선들의수 진출차수 (out-degree) v 가꼬리가되는간선들의수 간선의수 n- e =( d i )/ i (n 개의정점과 e 개의간선을가진그래프 ) 다이그래프 (digraph) : 방향그래프 Copyright DBLAB, Seoul National University 9

10 그래프표현법 () 인접행렬 (Adjacency Matrix) G=(V,E) 는정점의수가 n(n ) 인그래프 인접행렬 : n n 의 차원배열 간선 (v i, v j ) E(G) a[i][j]= 간선 (v i, v j ) E(G) a[i][j]= 필요공간 : n 비트 G 의인접행렬 G 의인접행렬 G 의인접행렬 n- 무방향그래프 : 어떤정점 i의차수는그행의합 : a[i][j] J= 방향그래프 : 행의합은진출차수, 열의합은진입차수 인접행렬의수행시간 : 최소한 O (n ) 희소그래프 (sparse graph) : O (e+n) Copyright DBLAB, Seoul National University

11 그래프표현법 () 인접리스트 (Adjacency Lists) 인접행렬의 n 행들을 n 개의연결리스트로표현 data 와 link 필드 C++ 선언문 Chain<int> *adjlist; LinkedGraph(const int vertice=) ; n(vertices), e() {adjlist=new Chain<int>[n];} n 개의정점, e 개의간선의무방향그래프 n 개의헤드노드, e 개의리스트노드가필요 방향그래프 : e 개의리스트노드 역인접리스트 (inverse adjacency lists) 리스트가표현하는정점에인접한각정점에대해하나의노드를둠 Copyright DBLAB, Seoul National University

12 인접리스트 () [] [] [] [] adjlists data link [] [] [] adjlists G 인접리스트 G 인접리스트 [] [] [] [] [] [] [] [] adjlists G 인접리스트 Copyright DBLAB, Seoul National University (

13 인접리스트 () int nodes[n + *e +]; 그래프 G 의순차표현 [] [] [] G 의역인접리스트 Copyright DBLAB, Seoul National University

14 인접리스트 () 헤더노드 그래프 G 에대한직교리스트표현 Copyright DBLAB, Seoul National University

15 인접다중리스트 (Adjacency Multilists) 간선 (u,v) 는두개의엔트리로표현 : u 를위한리스트, v 를위한리스트에나타남 새로운노드구조 m vertex vertex list list [] [] [] [] adjnodes The lists are N N N edge (,) N N N edge (,) N N edge (,) N N N edge (,) N N edge (,) N edge (,) vertex : N -> N -> N vertex : N -> N -> N vertex : N -> N -> N vertex : N -> N -> N Copyright DBLAB, Seoul National University G 에대한인접다중리스트

16 가중치간선 (Weighted Edges) 그래프의간선에가중치 (weights) 부여 인접행렬 : 행렬엔트리에 a[i][j] 의가중치정보저장 인접리스트 : 노드구조에 weight 필드를추가 네트워크 (network) : 가중치간선을가진그래프 Copyright DBLAB, Seoul National University

17 C++ 그래프클래스 Graph Matrix WDigraph LinkedWDigraph LinkedDigraph MatrixWGraph MatrixDigraph LinkedWGraph LinkedGraph MatrixGraph 그래프클래스에대해파생가능계층 Copyright DBLAB, Seoul National University

18 그래프의기본연산 깊이 - 우선탐색 (DFS; Depth-First Search) () 출발정점 v 를방문 () v 에인접하고방문하지않은한정점 w 를선택 () w 를시작점으로다시깊이우선탐색시작 () 모든인접정점을방문한정점 u 에도달하면, 최근에 방문한정점중아직방문을안한정점 w 와인접하고있는정점으로되돌아감 () 정점 w 로부터다시깊이우선탐색시작 () 방문을한정점들로부터방문하지않은정점으로더이상 갈수없을때종료 Copyright DBLAB, Seoul National University 8

19 깊이우선탐색 () 예제.,,,,,,, 순으로방문 그래프 G 와그인접리스트 [] [] [] [] [] [] [] [] adjlists (a) (b) Copyright DBLAB, Seoul National University 9

20 깊이우선탐색 () DFS 의분석 탐색을끝내는시간 O (e) v에인접한모든정점들을찾는데 O (n) 의시간 총시간은 O(n ) Copyright DBLAB, Seoul National University

21 너비우선탐색 () 너비우선탐색 (BFS; Breadth-First Search) 시작정점 v 를방문 v 에인접한모든정점들을방문 새롭게방문한정점들에인접하면서아직방문하지못한정점들을방문 예제.,,,,,,, 순으로방문 Copyright DBLAB, Seoul National University

22 너비우선탐색 () Virtual void Graph::BFS(int v) // 너비 - 우선탐색은정점 v 에서부터시작한다. // v 방문시 visited[i] 는 TRUE 로설정된다. 이함수는큐를이용한다. { visited = new bool[n];. fill(visited, visited+n, false); visited[v] = true; Queue<int> q; q.push(v); while(!q.isempty()) { v = *q.front(); q.pop(); for(v 에인접한모든정점 w 에대해 ) // 실제코드는반복자를사용 if(!visited[w]) { q.push(w); visited[w] = TRUE; } } // while 루프의끝 delete [] visited; } BFS 의분석 전체시간 O(n ) 인접리스트표현 : 전체비용 O(e) Copyright DBLAB, Seoul National University

23 연결요소 연결요소 (connected component) 방문하지않은정점 v 에대해 DFS(v) 또는 BFS(v) 를반복호출로구함 Virtual void Graph::Components() // 그래프의연결요소들을결정 { // visited 는 Graph 의 bool* 데이타멤버로선언되었다고가정. visited = new bool[n]; fill(visited, visited+n, false); for(i=; i<n; i++) if(!visited[i]) { DFS(i); // 연결요소를탐색 OutputNewComponent(); } delete [] visited; } 연결요소의결정 Component 의분석 인접리스트로표현 : 모든연결요소들생성시간은 O(n+e) 인접행렬로표현 : O(n ) Copyright DBLAB, Seoul National University

24 신장트리 () 신장트리 (spanning tree) : G 의간선들로만구성되고 G 의모든정점들이포함된트리 깊이 - 우선신장트리 (depth-first spanning tree) 너비 - 우선신장트리 (breadth-first spanning tree) 완전그래프와이그래프의세신장트리 (a) DFS() 신장트리 (b) BFS() 신장트리 Copyright DBLAB, Seoul National University

25 신장트리 () 예제. [ 회로등식의생성 ] 전기네트워크에대한신장트리구함 비트리간선을신장트리에한번에하나씩도입 Kirchoff의제 법칙이용하여회로등식얻음 신장트리는 G 의최소부분그래프 (minimal subgraph) G' 로서 V(G') = V(G) 이고 G' 는연결되어있음 신장트리는 n- 개의간선가짐 Copyright DBLAB, Seoul National University

26 이중결합요소 () 단절점 (articulation point) 그래프의정점들중이정점과이정점에부속한모든간선들삭제시, 최소한두개의연결요소를만들게하는정점 이중결합그래프 (biconnected graph) 절점이없는연결그래프 이중결합요소 (biconnected component) 최대이중결합부분그래프 (maximal biconnected subgraph) 연결그래프 이중결합요소 Copyright DBLAB, Seoul National University

27 이중결합요소 () 연결무방향그래프의이중결합요소 깊이 - 우선신장트리를이용 연결그래프 루트를 으로하는깊이 - 우선신장트리 Copyright DBLAB, Seoul National University

28 이중결합요소 () 백간선 (back edge) u 가 v 의조상이거나 v 가 u 의조상인비트리간선 (u,v) 교차간선 (cross edge) low(w) 백간선이아닌비트리간선 w 의후손들과많아야하나의백간선으로된경로를이용해 w 로부터도달할수있는가장적은깊이우선번호 low(w) = min{dfn(w), min{low(x) x 는 w 의자식 }, min{dfn(x) (w,x) 는백간선 }} Vertex 8 9 dfn 8 9 low 9 신장트리에대한 dfn 값과 low 값 Copyright DBLAB, Seoul National University 8

29 최소비용신장트리 최소비용신장트리 (minimum-cost spanning tree) 최저의비용을갖는신장트리 Kruskal, Prim, Sollin 알고리즘 갈망법 (greedy method) 최적의해를단계별로구한다 각단계에서는몇개의판단기준에따라최상의결정을내린다 한번내려진결정은뒤에번복이불가능하므로각각의결정이가능한해를도출해낼수있는지확인 신장트리의제한조건 () 그래프내에있는간선들만을사용 () 정확하게 n- 개의간선만을사용 () 사이클을생성하는간선을사용금지 Copyright DBLAB, Seoul National University 9

30 Kruskal 알고리즘 () 알고리즘 한번에하나씩 T 에간선을추가해가면서최소비용신장트리 T 를구축 T 에포함될간선을비용의크기순으로선택 이미 T 에포함된간선들과사이클을형성하지않는간선만을 T 에추가 - G 는연결되어있고 n> 개의정점을가지므로정확하게 n- 개의간선만이 T 에포함됨. Copyright DBLAB, Seoul National University

31 Kruskal 알고리즘 () 예제. 8 8 (a) (b) (c) (d) (e) (f) (g) (h) Kruskal 알고리즘의각단계 Copyright DBLAB, Seoul National University

32 Kruskal 알고리즘 () T = while ((T 가 n- 개미만의간선을포함 ) && (E 가공백이아님 )) { E 에서최소비용간선 (v,w) 선택 ; E 에서 (v,w) 를삭제 ; if (v,w) 가 T 에서사이클을만들지않으면 T 에 (v,w) 를추가 ; else discard (v,w); } if (T 가 n- 개미만의간선을포함 ) cout << " 신장트리없음 " << endl; Kruskal 알고리즘 정리. G 를무방향연결그래프라하자. Kruskal 알고리즘은최소비용신장트리를생성한다. Copyright DBLAB, Seoul National University

33 Prim 알고리즘 () 알고리즘 한번에한간선씩최소비용신장트리를구축 각단계에서선택된간선의집합은트리 하나의정점으로된트리 T 에서시작 최소비용간선 (u,v) 를구해 T U {(u,v)} 이트리가되면 T 에추가 T 에 n- 개의간선이포함될때까지간선의추가단계를반복 추가된간선이사이클을형성하지않도록각단계에서간선 (u,v) 를선택할때 u 또는 v 중오직하나만 T 에속한것을고른다. Copyright DBLAB, Seoul National University

34 Prim 알고리즘 () (a) (b) (c) (d) (e) (f) Prim 알고리즘의진행단계 Copyright DBLAB, Seoul National University

35 Sollin 알고리즘 알고리즘 각단계에서여러개의간선을선택 각단계에서는포리스트에있는각트리에대해하나의간선을선택 이간선은오직하나의정점만그트리에속한최소비용간선 선택된간선은구축중인신장트리에추가 오직하나의트리만이존재 or 더이상선택할간선이없을 때종료 Copyright DBLAB, Seoul National University (a) (b) Sollin 알고리즘의단계들

36 최단경로와이행적폐쇄 단일시발점 / 모든종점 : 음이아닌간선비용 문제 : 시발정점 v 에서부터 G 의모든다른정점까지의최단경로를구하는것 (a) 그래프 경로 길이 ), ),, ),,, ), (b) 에서부터의최단경로 그래프와정점 에서모든종점까지의최단경로 Copyright DBLAB, Seoul National University

37 단일시발점 / 모든종점 : 음이아닌간선비용 () ShortestPath 함수 : 최단경로의길이의결정 void MatrixWdigraph::ShortestPath(const int n, const int v) // dist[j], j n 은 n 개의정점을가진방향그래프 G 에서정점 v 로부터정점 j 까지 // 의최단경로길이로설정됨. 간선의길이는 length[j][j] 로주어짐. { for (int i=; i<n; i++) s[i] = false; dist[i] = length[v][i]; // 초기화 s[v] = true; dist[v] = ; for (i=; i<n-; i++) { // 정점 v 로부터 n- 개경로를결정 int u = Choose(n); // choose 는 s[w]=false 이고 // dist[u] = minimum dist[w] 가되는 u 를반환 s[u] = true; for (int w=; w<n; w++) if(!s[w]&&dist[u]+length[u][w]<dist[w]) dist[w] = dist[u] + length[u][w]; } // for(i=;...) 의끝 } ShortestPath 의분석 n 개의정점을가진그래프에대한수행시간은 O (n ) Copyright DBLAB, Seoul National University

38 단일시발점 / 모든종점 : 음이아닌간선비용 () 예제. Chicago San Francisco 8 Denver Los Angeles 9 New Orleans Boston New York (a) 방향그래프 Miami 8 9 (b) 길이 - 인접행렬 Copyright DBLAB, Seoul National University 8

39 단일시발점 / 모든종점 : 음이아닌간선비용 () 반복 선택된정점 거리 LA SF DEN CHI BOST NY MIA NO [] [] [] [] [] [] [] [] 초기 ---- 방향그래프에대한 ShortestPath 의작동 Copyright DBLAB, Seoul National University 9

40 단일시발점 / 모든종점 : 일반적가중치 () 음수길이사이클이존재할경우최단길이경로가존재하지않는다. - 음의길이간선을가진방향그래프 - 음의길이사이클을가진방향그래프 동적프로그래밍방법 : 모든 u 에대해 dist n- [u] 를구함 dist k [u] = min{dist k- [u], min{dist k- [i] + length[i][u]}} i Copyright DBLAB, Seoul National University

41 Copyright DBLAB, Seoul National University 단일시발점 / 모든종점 : 일반적가중치 () 예제 (a) 방향그래프 - Dist k [] k (b) dist k 음의길이간선을가진최단경로

42 단일시발점 / 모든종점 : 일반적가중치 () Bellman 과 Ford 알고리즘 void MatrixWDigraph::BellmanFord(const int n, const int v) {// 음의길이간선을가지는단일시발점모든종점최단경로 for(int i=; i<n; i++) dist[i] = length[v][i]; // dist 초기화 } for(int k=; k<=n-; k++) for(u!=v이고최소한하나의진입간선을갖는 u에대해 ) for( 그래프의각 <i,u> 에대해 ) if(dist[u]>dist[i]+length[i][u]) dist[u] = dist[i] + length[i][u]; 최단경로를계산하는 Bellman 과 Ford 알고리즘 BellmanFord 의분석 인접행렬 O(n ), 인접리스트 O(ne) Copyright DBLAB, Seoul National University

43 모든쌍의최단경로 () u v 인모든정점의쌍 u 와 v 간의최단경로를구하는것 연속적으로 A -, A, A, A,, A n- 을생성하는것 인덱스가 K 보다큰정점을통과하지않는 i 에서 j 까지의최단경로가인덱스가 k 인정점을통과하지않으면그길이는 A k- [i][j] 가된다. 최단경로가 k 를통과한다고하면경로는 i 에서 k 까지의경로와 k 에서 j 까지의경로로구성. 이러한 i 에서 k 까지또, k 에서 j 까지의 부분경로둘다 k- 보다큰인덱스를가진정점을통과하지않음. 이경로들이길이는 A k- [i][k], A k- [k][j] 가된다. A k [i][j] = min{a k- [i][j], A k- [i][k] + A k- [k][j]}, k A - [i][j] = length[i][j] Copyright DBLAB, Seoul National University

44 모든쌍의최단경로 () u v 인모든정점의쌍 u 와 v 간의최단경로를구하는것 A k [i][j] = min{a k- [i][j], A k- [i][k] + A k- [k][j], k A - [i][j] = length[i][j] void MatrixWDigraph::AllLengths(const int n) { // length[n][n] 은 n개의정점을가진그래프의인접행렬이다. // a[i][j] 는 i와 j 사이의최단경로의길이이다. for(int i=; i<n; i++) for(int j=; j<n; j++) a[i][j] = length[i][j]; // length를 a에복사 for(int k=; k<n; k++) // 제일큰정점의인덱스가 k인경로에대해 for(i=; i<n; i++) // 가능한모든정점의쌍에대해 for(int j=; j<n; j++) if((a[i][k]+a[k][j]) < a[i][j]) a[i][j] = a[i][k] + a[k][j]; } AllLengths 의분석 전체시간은 O(n ) 모든쌍의최단경로 Copyright DBLAB, Seoul National University

45 Copyright DBLAB, Seoul National University 모든쌍의최단경로 () 예제. A - A (b) A - (c) A A (d) A A (e) A (a) 방향그래프모든쌍의최단경로문제의예

46 Copyright DBLAB, Seoul National University 이행적폐쇄 () 이행적폐쇄행렬 (A + ) i 에서 j 로의경로길이 A + [i][j] = 인행렬 반사이행적폐쇄행렬 (A * ) i 에서 j 로의경로길이 A * [i][j] = 인행렬 (a) 방향그래프 G (b) 인접행렬 A (c) A + (d) A *

47 이행적폐쇄 () A + 간선 <i, j> G length[i][j] =, otherwise, length[i][j] = LARGE All Lengths 종료시 length[i][j] + A + [i][j]= A * : A + 의대각선에있는항을모두 로설정전체시간은 O(n ) Copyright DBLAB, Seoul National University

48 작업네트워크 AOV(activity on vertex) 네트워크 : 정점이작업을, 간선이작업간의선행관계를나타내는방향그래프 G 과목번호 과목명 선수과목 C C C C C C C C8 C9 C C C C C C 프로그래밍 I 이산수학자료구조수학 I 수학 II 선형대수알고리즘분석어셈블리어운영체제프로그래밍언어론컴파일러설계인공지능계산이론병렬알고리즘수치해석 없음없음 C, C 없음 C C C, C C C, C8 C C C C C C C C C C C C C8 C C C9 C C C C C (a) 가상적인대학에서컴퓨터과학학위에필요한과목들 (b) 과목은정점으로, 선수과목은간선으로포현한 AOV 네트워크 An activity-on-vertex(aov) 네트워크 Copyright DBLAB, Seoul National University 8

49 AOV 네트워크 () 정의 정점 i 로부터정점 j 로의방향경로존재하면정점 i 를정점 j 의선행자 (predecessor) 간선 <i, j> 가존재하면정점 i 를정점 j 의직속선행자 (immediate predecessor) i 가 j 의선행자 j 는 i 의후속자 (successor) i 가 j 의직속선행자 j 는 i 의직속후속자 (immediate successor) 모든세쌍 i, j, k 에대해 I j 이고 j k I k 가성립하면관계는이행적 (transitive) S 에속한모든원소 x 에대해 x x 가성립하지않으면관계는집합 S 상에서비반사적 (irreflexive) 분분순서 (partial order) : 이행적, 비반사적인선행관계 위상순서 (topological order) : 임의의두정점 i, j 에대해네트워크에서 i 가 j 의선행자이면선형순서에서도 i 가 j 앞에있는그래프정점의선형순서 Copyright DBLAB, Seoul National University 9

50 AOV 네트워크 () (a) 초기 (b) 정점 삭제 (c) 정점 삭제 (d) 정점 삭제 (e) 정점 삭제 (f) 정점 삭제 생성된위상순서 :,,,,, Copyright DBLAB, Seoul National University

51 AOV 네트워크 () count first data link [] [] [] [] [] [] 위상정렬알고리즘에의해사용되는내부표현 Copyright DBLAB, Seoul National University

52 AOV 네트워크 () TopologicalOrder 의분석 점근적계산시간 O (e+n) void LinkedDigraph::TopologicalOrder() { // 네트워크의 n 개정점이위상순서로나열한다. int top = -; for(int i=; i<n; i++) // 선행자가없는정점들을연결스택으로 if(count[i]==) {count[i] = top; top = i;} // 생성 } for(i=; i<n; i++) if(top==-) throw Network has a cycle." int j = top; top = count[top]; // 정점하나를스택에서꺼냄 cout << j << endl; Chain<int>::ChainIterator ji = adjlists[j]. begin(); while (ji) { // j 의후속자정점의계수를감소시킴 count[*ji]--; if(count[*ji]==) { count[*ji] = top;top=*ji;} // *ji 를스택에삽입 ji++; } 위상순서 Copyright DBLAB, Seoul National University

53 AOE 네트워크 () AOE(activity on edge) 네트워크 방향간선 : 프로젝트에서수행되어야할작업 정점 : 사건 (event) ( 사건은어떤작업의완료를알림 ) 정점에서나오는간선이의미하는작업은그정점에서의사건이발생할때까지시작될수없다. Copyright DBLAB, Seoul National University

54 AOE 네트워크 () start a = a = a = a = a = a = 9 8 a = 8 a = finish a = a = 9 a = (a) 가상프로젝트의작업네트워크 사건 8 의미프로젝트의시작작업 a의종료작업 a와 a의종료작업 a8와 a9의종료프로젝트의종료 (b) 네트워크 (a) 의몇몇사건의의미 Copyright DBLAB, Seoul National University

55 AOE 네트워크 () 임계경로 (critical path) 시작정점에서종료정점까지의최장경로 (longest path) 가장이른시간 (earliest time) e(i) 시작정점 에서정점 i 까지의최장경로길이 가장늦은시간 (latest time) l(i) 프로젝트기간을지연시키지않으면서가장늦게작업을시작할수있는시간 임계작업 (critical activity) : e(i) = l(i) 인작업 임계경로분석의목적 임계작업들을식별해내어가용자원을집중시킴으로써프로젝트완료시간을단축 Copyright DBLAB, Seoul National University

56 AOE 네트워크 () 가장이른작업시간과가장늦은작업시간 e(i)= ee[k] (ee[k] : 가장이른사건발생시간 ) l(i) = le[l] - 작업 ai 의기간 (le[l] : 가장늦은사건발생시간 ) 가장이른시간의계산 ee[j] = max { ee[i] + <i, j> 의시간 } i P(j) (P(j) 는 j 의직속선행자의집합 ) Copyright DBLAB, Seoul National University

57 AOE 네트워크 () [] [] count first vertex dur link [] (a) 인접리스트 [] [] [] 9 [] 8 [] 8 [8] (b) ee 의계산 ee [] [] [] [] [] [] [] [] [8] Stack Initial Output Output Output Output Output Output Output Output Output [] [,, ] [,, ] [, ] [] [] [, ] [] [8] Copyright DBLAB, Seoul National University

58 AOE 네트워크 () 가장늦은시간의계산 le[j] = min { le[i] - <j, i> 의기간 } i P(j) (S(j) 는 j 의직속후속자들의집합 ) le[8]=ee[8]=8 le[]=min{le[8]-}= le[]=min{le[8]-}= le[]=min{le[]-9, le[]-}= le[]=min{le[]-}= le[]=min{le[]-}= le[]=min{le[]-}= le[]=min{le[]-}=8 le[]=min{le[]-, le[]-, le[]-}= AOE 네트워크에대한 le 의계산 Copyright DBLAB, Seoul National University 8

59 AOE 네트워크 () 이른시작시간 가장높은시간임계도임계성 작업 e e e = a Yes a No a No a Yes a No a 8 No a Yes a 8 Yes a 9 No a Yes a Yes 이른, 늦은임계도값 Copyright DBLAB, Seoul National University 9

60 AOE 네트워크 (8) a a a a start 8 finish a 8 a 모든비임계작업을삭제한후의그래프 a a a a a a a 도달불가능한작업을가진 AOE 네트워크 Copyright DBLAB, Seoul National University

Chap 6: Graphs

Chap 6: Graphs 그래프표현법 인접행렬 (Adjacency Matrix) 인접리스트 (Adjacency List) 인접다중리스트 (Adjacency Multilist) 6 장. 그래프 (Page ) 인접행렬 (Adjacency Matrix) n 개의 vertex 를갖는그래프 G 의인접행렬의구성 A[n][n] (u, v) E(G) 이면, A[u][v] = Otherwise, A[u][v]

More information

Chap 6: Graphs

Chap 6: Graphs 5. 작업네트워크 (Activity Networks) 작업 (Activity) 부분프로젝트 (divide and conquer) 각각의작업들이완료되어야전체프로젝트가성공적으로완료 두가지종류의네트워크 Activity on Vertex (AOV) Networks Activity on Edge (AOE) Networks 6 장. 그래프 (Page 1) 5.1 AOV

More information

Chap 6: Graphs

Chap 6: Graphs AOV Network 의표현 임의의 vertex 가 predecessor 를갖는지조사 각 vertex 에대해 immediate predecessor 의수를나타내는 count field 저장 Vertex 와그에부속된모든 edge 들을삭제 AOV network 을인접리스트로표현 count link struct node { int vertex; struct node

More information

5장 스택

5장 스택 강의내용 오늘강의내용 ( 월 7 일 ) 중갂고사문제풀이 9. 그래프의숚회. 최소비용신장트리 ( 가중치그래프 ) 예습 ( 월 일 ) : 장가중치그래프 ( 계속 ) 숙제 : 연습문제 (9 장 ) :,,,,,7,8, 번풀어보기 마감일 : 9 년 월 일 ( 화 ) 9. 그래프숚회 그래프숚회 주어진어떤정점을출발하여체계적으로그래프의모든정점들을방문하는것 그래프숚회의종류

More information

슬라이드 1

슬라이드 1 CHAP 10: 그래프 C 로쉽게풀어쓴자료구조 생능출판사 2005 그래프 그래프 (graph): 연결되어있는객체간의관계를표현하는자료구조 그래프의예 : 전기회로, 프로젝트관리, 지도에서도시들의연결 그래프 : 아주일반적인자료구조 ( 예 ) 트리도그래프의일종으로볼수있다. 그래프이론 (graph theory): 그래프를문제해결의도구로이용하는연구분야 그래프역사 1800

More information

쉽게배우는알고리즘 9장. 그래프알고리즘

쉽게배우는알고리즘 9장. 그래프알고리즘 쉽게배우는알고리즘 장. 그래프알고리즘 http://academy.hanb.co.kr 장. 그래프알고리즘 수학은패턴의과학이다. 음악역시패턴들이다. 컴퓨터과학은추상화와패턴의형성에깊은관련이있다. 컴퓨터과학이다른분야들에비해특징적인것은지속적으로차원이 급상승한다는점이다. 미시적관점에서 거시적관점으로도약하는것이다. - 도널드크누스 - - 한빛미디어 학습목표 그래프의표현법을익힌다.

More information

Microsoft PowerPoint - 제10장-그래프.pptx

Microsoft PowerPoint - 제10장-그래프.pptx 제 강의. 그래프개념과그래프탐색 학습목차. 그래프의개념. 그래프의표현. 그래프탐색 . 그래프의개념 graph? chart? 오래된그래프문제로다음과 Köenigsberg 다리문제가있다. 이문제는다음과같은지형이있을때임의의한곳 (A,B,C,D) 에서출발하여 a 부터 f 까지 모든다리를한번씩건널수있는가? 하는문제이다. 자료구조의그래프는이러한문제를컴퓨터에표현하고알고리즘을개발하는분야이다.

More information

Microsoft PowerPoint - ch12 - Graph, Graph Algorithms

Microsoft PowerPoint - ch12 - Graph, Graph Algorithms 2015-1 12. 그래프와관련알고리즘 2015 년 5 월 28 일 교수김영탁 영남대학교공과대학정보통신공학과 (Tel : +82-53-810-2497; Fax : +82-53-810-4742 http://antl.yu.ac.kr/; E-mail : ytkim@yu.ac.kr) 그래프 (Graph) 그래프의응용예 Outline 미로찾기 인터넷라우터에서의패킷 forwarding

More information

11장.그래프

11장.그래프 ---------------- T STRUTURS USIN ---------------- PTR 그래프 1/32 그래프 (graph) 란? 연결되어있는객체간의관계를표현하는자료구조 가장일반적인자료구조형태 그래프의예 트리 (tree) 지도, 지하철노선도 전기회로의연결상태 OS의프로세스와자원관계 인맥지도 2/32 그래프역사 오일러문제 (1800 년대 ) 다리를한번만건너서처음출발했던장소로돌아오는문제

More information

슬라이드 1

슬라이드 1 CHAP 10 : 그래프 yicho@gachon.ac.kr 1 그래프역사 1800 년대오일러에의하여창안 오일러문제 모든다리를한번만건너서처음출발했던장소로돌아오는문제 A,B,C,D 지역의연결관계표현 위치 : 정점 (node) 다리 : 간선 (edge) 오일러정리 모든정점에연결된간선의수가짝수이면오일러경로존재함 따라서그래프 (b) 에는오일러경로가존재하지않음 2 그래프정의

More information

Ch.8 Procedures and Environments

Ch.8 Procedures and Environments Chapter 10 그래프 (graph) SANGJI University Kwangman KO (kkman@sangji.ac.kr) 그래프 (graph) 그래프 연결되어있는객체간의관계를표현하는자료구조 예 : 전기회로, 프로젝트관리, 지도에서도시들의연결 다양한모델에적용할수있는유연성있는자료구조 연결되어있는객체간의관계를표현하는자료구조 꼭지점 (vertex) 와변

More information

Chapter 10 그래프 (graph) SANGJI University Kwangman KO

Chapter 10 그래프 (graph) SANGJI University Kwangman KO Chapter 10 그래프 (graph) SANGJI University Kwangman KO (kkman@sangji.ac.kr) 그래프 (graph) 그래프 연결되어있는객체간의관계를표현하는자료구조 예 : 전기회로, 프로젝트관리, 지도에서도시들의연결 다양한모델에적용할수있는유연성있는자료구조 연결되어있는객체간의관계를표현하는자료구조 꼭지점 (vertex) 와변

More information

1장. 리스트

1장. 리스트 01. 그래프를소개합니다 02. 그래프를어떻게표현할것인가? 03. 그래프순회 : 그래프를따라산책하기 04. 최소신장트리 05. 최단경로탐색 06. 위상정렬 라인하르트오일러가 쾨니히스베르크의 7 개의다리문제 를풀기위해고안해낸수학적도구. 7 개의다리를간선 (Edge) 로, 4 개의육지를정점 (Vertex) 로표현. A A Pregel River B C B C D

More information

슬라이드 1

슬라이드 1 CHAP 10 : 그래프 그래프 (graph) 연결되어있는객체간의관계를표현하는자료구조 가장일반적인자료구조형태 우리가배운트리 (tree) 도그래프의특수한경우임 전기회로의소자간연결상태 운영체제의프로세스와자원관계 큰프로젝트에서작은프로젝트간의우선순위 지도에서도시들의연결상태 그래프역사 1800 년대오일러에의하여창안 오일러문제 모든다리를한번만건너서처음출발했던장소로돌아오는문제

More information

슬라이드 1

슬라이드 1 CHAP 10 : 그래프 그래프 (graph) 연결되어있는객체간의관계를표현하는자료구조 가장일반적인자료구조형태 우리가배운트리 (tree) 도그래프의특수한경우임 전기회로의소자간연결상태 운영체제의프로세스와자원관계 큰프로젝트에서작은프로젝트간의우선순위 지도에서도시들의연결상태 그래프역사 1800 년대오일러에의하여창안 오일러문제 모든다리를한번만건너서처음출발했던장소로돌아오는문제

More information

선형자료구조 16.1 그래프 배열, 스택, 큐, 리스트를사용하여해결할수있다. 비선형자료구조 순환, 트리, 이진트리로복잡한문제를해결한다. 그래프 (graph) ; 인터넷과같은통신네트워크나고속도로나철도와같은교통네트워크에적합하다. 그래프 (graph) 링크에의해연결되어있는노

선형자료구조 16.1 그래프 배열, 스택, 큐, 리스트를사용하여해결할수있다. 비선형자료구조 순환, 트리, 이진트리로복잡한문제를해결한다. 그래프 (graph) ; 인터넷과같은통신네트워크나고속도로나철도와같은교통네트워크에적합하다. 그래프 (graph) 링크에의해연결되어있는노 16. 그래프 선형자료구조 16.1 그래프 배열, 스택, 큐, 리스트를사용하여해결할수있다. 비선형자료구조 순환, 트리, 이진트리로복잡한문제를해결한다. 그래프 (graph) ; 인터넷과같은통신네트워크나고속도로나철도와같은교통네트워크에적합하다. 그래프 (graph) 링크에의해연결되어있는노드들로구성된구조이다. 노드를정점 (vertex) 이라고부르고, 링크를간선 (edge)

More information

Microsoft PowerPoint - ch12 - Graph, Graph Algorithms

Microsoft PowerPoint - ch12 - Graph, Graph Algorithms 그래프탐색 (Graph Search) 그래프의가장기본적인연산 하나의정점으로부터시작하여차례대로모든정점들을한번씩방문 많은문제들이단순히그래프의노드를탐색하는것으로해결 ( 예 ) 도로망에서특정도시에서다른도시로갈수있는지여부 ( 예 ) 전자회로에서특정단자와다른단자가서로연결되어있는지여부 ch12-44 깊이우선탐색 (DFS) 깊이우선탐색 (DFS: depth-first search)

More information

Microsoft PowerPoint - slide05.pptx

Microsoft PowerPoint - slide05.pptx Im4u 봄방학캠프 DAY 5; Elementary Graph Theory 구종만 jongman@gmail.com 그래프 (Graphs) 가장중요한 (?) 자료형인그래프의소개 그래프문제의큰두가지벽 모델링 : 현실세계의개념을그래프로나타낸다 알고리즘: 그래프로나타낸문제를해결한다 대개의문제에서는한가지벽만있다 모델링 : 문제를풀면서공부 알고리즘 : 비교적배우기쉽다

More information

chap 5: Trees

chap 5: Trees 5. Threaded Binary Tree 기본개념 n 개의노드를갖는이진트리에는 2n 개의링크가존재 2n 개의링크중에 n + 1 개의링크값은 null Null 링크를다른노드에대한포인터로대체 Threads Thread 의이용 ptr left_child = NULL 일경우, ptr left_child 를 ptr 의 inorder predecessor 를가리키도록변경

More information

Chapter 4. LISTS

Chapter 4. LISTS 6. 동치관계 (Equivalence Relations) 동치관계 reflexive, symmetric, transitive 성질을만족 "equal to"(=) 관계는동치관계임. x = x x = y 이면 y = x x = y 이고 y = z 이면 x = z 동치관계를이용하여집합 S 를 동치클래스 로분할 동일한클래스내의원소 x, y 에대해서는 x y 관계성립

More information

Let G = (V, E) be a connected, undirected graph with a real-valued weight function w defined on E. Let A be a set of E, possibly empty, that is includ

Let G = (V, E) be a connected, undirected graph with a real-valued weight function w defined on E. Let A be a set of E, possibly empty, that is includ 알고리즘설계와분석 (CSE3081(2 반 )) 기말고사 (2016년 12월15일 ( 목 ) 오전 9시40분 ~) 담당교수 : 서강대학교컴퓨터공학과임인성 < 주의 > 답안지에답을쓴후제출할것. 만약공간이부족하면답안지의뒷면을이용하고, 반드시답을쓰는칸에어느쪽의뒷면에답을기술하였는지명시할것. 연습지는수거하지않음. function MakeSet(x) { x.parent

More information

완벽한개념정립 _ 행렬의참, 거짓 수학전문가 NAMU 선생 1. 행렬의참, 거짓개념정리 1. 교환법칙과관련한내용, 는항상성립하지만 는항상성립하지는않는다. < 참인명제 > (1),, (2) ( ) 인경우에는 가성립한다.,,, (3) 다음과같은관계식을만족하는두행렬 A,B에

완벽한개념정립 _ 행렬의참, 거짓 수학전문가 NAMU 선생 1. 행렬의참, 거짓개념정리 1. 교환법칙과관련한내용, 는항상성립하지만 는항상성립하지는않는다. < 참인명제 > (1),, (2) ( ) 인경우에는 가성립한다.,,, (3) 다음과같은관계식을만족하는두행렬 A,B에 1. 행렬의참, 거짓개념정리 1. 교환법칙과관련한내용, 는항상성립하지만 는항상성립하지는않는다. < 참인명제 > (1),, (2) ( ) 인경우에는 가성립한다.,,, (3) 다음과같은관계식을만족하는두행렬 A,B에대하여 AB=BA 1 가성립한다 2 3 (4) 이면 1 곱셈공식및변형공식성립 ± ± ( 복호동순 ), 2 지수법칙성립 (은자연수 ) < 거짓인명제 >

More information

A Hierarchical Approach to Interactive Motion Editing for Human-like Figures

A Hierarchical Approach to Interactive Motion Editing for Human-like Figures 단일연결리스트 (Singly Linked List) 신찬수 연결리스트 (linked list)? tail 서울부산수원용인 null item next 구조체복습 struct name_card { char name[20]; int date; } struct name_card a; // 구조체변수 a 선언 a.name 또는 a.date // 구조체 a의멤버접근 struct

More information

Microsoft PowerPoint - 26.pptx

Microsoft PowerPoint - 26.pptx 이산수학 () 관계와그특성 (Relations and Its Properties) 2011년봄학기 강원대학교컴퓨터과학전공문양세 Binary Relations ( 이진관계 ) Let A, B be any two sets. A binary relation R from A to B, written R:A B, is a subset of A B. (A 에서 B 로의이진관계

More information

WISHBONE System-on-Chip Interconnection Architecture for Portable IP Cores

WISHBONE System-on-Chip Interconnection Architecture for Portable IP Cores 프로젝트정리 1주차 : 미로를텍스트파일로만들어출력하는프로그램작성. 2주차 : 텍스트형태의미로를 MC의그래픽기능을이용하여그리는프로그램작성. 3주차 : 미로에서길찾는프로그램작성. Dept. of CS, Sogang Univ. 1 DS를이용한미로길찾기문제 DS를이용한미로길찾기문제는 2주차까지설계한미로의출발점과도착점을연결하는가장짧은경로를탐색해출력하는문제이다. NxM

More information

Data structure: Assignment 1 Seung-Hoon Na October 1, Assignment 1 Binary search 주어진 정렬된 입력 파일이 있다고 가정하자. 단, 파일내의 숫자는 공백으로 구 분, file내에 숫자들은

Data structure: Assignment 1 Seung-Hoon Na October 1, Assignment 1 Binary search 주어진 정렬된 입력 파일이 있다고 가정하자. 단, 파일내의 숫자는 공백으로 구 분, file내에 숫자들은 Data structure: Assignment 1 Seung-Hoon Na October 1, 018 1 1.1 Assignment 1 Binary search 주어진 정렬된 입력 파일이 있다고 가정하자. 단, 파일내의 숫자는 공백으로 구 분, file내에 숫자들은 multiline으로 구성될 수 있으며, 한 라인에는 임의의 갯수의 숫자가 순서대로 나열될

More information

Microsoft PowerPoint - ch09 - 연결형리스트, Stack, Queue와 응용 pm0100

Microsoft PowerPoint - ch09 - 연결형리스트, Stack, Queue와 응용 pm0100 2015-1 프로그래밍언어 9. 연결형리스트, Stack, Queue 2015 년 5 월 4 일 교수김영탁 영남대학교공과대학정보통신공학과 (Tel : +82-53-810-2497; Fax : +82-53-810-4742 http://antl.yu.ac.kr/; E-mail : ytkim@yu.ac.kr) 연결리스트 (Linked List) 연결리스트연산 Stack

More information

2002년 2학기 자료구조

2002년 2학기 자료구조 자료구조 (Data Structures) Chapter 1 Basic Concepts Overview : Data (1) Data vs Information (2) Data Linear list( 선형리스트 ) - Sequential list : - Linked list : Nonlinear list( 비선형리스트 ) - Tree : - Graph : (3)

More information

03_queue

03_queue Queue Data Structures and Algorithms 목차 큐의이해와 ADT 정의 큐의배열기반구현 큐의연결리스트기반구현 큐의활용 덱 (Deque) 의이해와구현 Data Structures and Algorithms 2 큐의이해와 ADT 정의 Data Structures and Algorithms 3 큐 (Stack) 의이해와 ADT 정의 큐는 LIFO(Last-in,

More information

예제 1.3 K 5 와 K 3,3 의결합행렬을만들고, 각꼭지점의차수를표시하여라. >> K5 = ones(5,5) - diag(diag(ones(5,5))); degree = sum(k5) degree = 4 4 4 4 4 >> K33 = [zeros(3) ones(3); ones(3) zeros(3)], degree = sum(k33) K33 = 0 0 0

More information

Data structure: Assignment 3 Seung-Hoon Na December 14, 2018 레드 블랙 트리 (Red-Black Tree) 1 본 절에서는 레드 블랙 트리를 2-3트리 또는 2-3-4트리 대한 동등한 자료구조로 보고, 두 가지 유형의 레

Data structure: Assignment 3 Seung-Hoon Na December 14, 2018 레드 블랙 트리 (Red-Black Tree) 1 본 절에서는 레드 블랙 트리를 2-3트리 또는 2-3-4트리 대한 동등한 자료구조로 보고, 두 가지 유형의 레 Data structure: Assignment 3 Seung-Hoon Na December 14, 2018 레드 블랙 트리 (Red-Black Tree) 1 본 절에서는 레드 블랙 트리를 2-3트리 또는 2-3-4트리 대한 동등한 자료구조로 보고, 두 가지 유형의 레드 블랙 트리를 구현하고자 한다. 1.1 2-3트리와 동등한 레드 블랙 트리 2-3트리와 동등한

More information

Chapter 4. LISTS

Chapter 4. LISTS C 언어에서리스트구현 리스트의생성 struct node { int data; struct node *link; ; struct node *ptr = NULL; ptr = (struct node *) malloc(sizeof(struct node)); Self-referential structure NULL: defined in stdio.h(k&r C) or

More information

chap 5: Trees

chap 5: Trees Chapter 5. TREES 목차 1. Introduction 2. 이진트리 (Binary Trees) 3. 이진트리의순회 (Binary Tree Traversals) 4. 이진트리의추가연산 5. 스레드이진트리 (Threaded Binary Trees) 6. 히프 (Heaps) 7. 이진탐색트리 (Binary Search Trees) 8. 선택트리 (Selection

More information

원형연결리스트에대한설명중틀린것은 모든노드들이연결되어있다 마지막에삽입하기가간단한다 헤더노드를가질수있다 최종노드포인터가 NULL이다 리스트의 번째요소를가장빠르게찾을수있는구현방법은무엇인가 배열 단순연결리스트 원형연결리스트 이중연결리스트 단순연결리스트의노드포인터 가마지막노드를

원형연결리스트에대한설명중틀린것은 모든노드들이연결되어있다 마지막에삽입하기가간단한다 헤더노드를가질수있다 최종노드포인터가 NULL이다 리스트의 번째요소를가장빠르게찾을수있는구현방법은무엇인가 배열 단순연결리스트 원형연결리스트 이중연결리스트 단순연결리스트의노드포인터 가마지막노드를 리스트에대한설명중틀린것은 구조체도리스트의요소가될수있다 리스트의요소간에는순서가있다 리스트는여러가지방법으로구현될수있다 리스트는집합과동일하다 다음은순차적표현과연결된표현을비교한것이다 설명이틀린것은 연결된표현은포인터를가지고있어상대적으로크기가작아진다 연결된표현은삽입이용이하다 순차적표현은연결된표현보다액세스시간이많이걸린다 연결된표현으로작성된리스트를 개로분리하기가쉽다 다음은연결리스트에서있을수있는여러가지경우를설명했는데잘못된항목은

More information

06장.리스트

06장.리스트 ---------------- DATA STRUCTURES USING C ---------------- CHAPTER 리스트 1/28 리스트란? 리스트 (list), 선형리스트 (linear list) 순서를가진항목들의모임 집합 : 항목간의순서의개념이없음 리스트의예 요일 : ( 일요일, 월요일,, 토요일 ) 한글자음의모임 : ( ㄱ, ㄴ,, ㅎ ) 카드 :

More information

제 1 장 기본 개념

제 1 장 기본 개념 이진트리순회와트리반복자 트리순회 (tree traversal) 트리에있는모든노드를한번씩만방문 순회방법 : LVR, LRV, VLR, VRL, RVL, RLV L : 왼쪽이동, V : 노드방문, R : 오른쪽이동 왼쪽을오른쪽보다먼저방문 (LR) LVR : 중위 (inorder) 순회 VLR : 전위 (preorder) 순회 LRV : 후위 (postorder)

More information

Microsoft PowerPoint Relations.pptx

Microsoft PowerPoint Relations.pptx 이산수학 () 관계와그특성 (Relations and Its Properties) 2010년봄학기강원대학교컴퓨터과학전공문양세 Binary Relations ( 이진관계 ) Let A, B be any two sets. A binary relation R from A to B, written R:A B, is a subset of A B. (A 에서 B 로의이진관계

More information

7장

7장 CHAP 7: 트리 C 로쉽게풀어쓴자료구조 트리 (TREE) 트리 : 계층적인구조를나타내는자료구조 트리는부모 - 자식관계의노드들로이루어진다. 응용분야 : 계층적인조직표현파일시스템인공지능에서의결정트리 대표이사 총무부 영업부 생산부 전산팀구매팀경리팀생산 1 팀생산 2 팀 * 예제 : 책그림 7-2, 7-3, 7-4 트리의용어 노드 (node): 트리의구성요소 루트

More information

01장.자료구조와 알고리즘

01장.자료구조와 알고리즘 ---------------- DATA STRUCTURES USING C ---------------- CHAPTER 자료구조와알고리즘 1/30 자료구조 일상생활에서자료를정리하고조직화하는이유는? 사물을편리하고효율적으로사용하기위함 다양한자료를효율적인규칙에따라정리한예 2/30 컴퓨터에서의자료구조 자료구조 (Data Structure) 컴퓨터에서자료를정리하고조직화하는다양한구조

More information

예제 1.1 ( 관계연산자 ) >> A=1:9, B=9-A A = B = >> tf = A>4 % 4 보다큰 A 의원소들을찾을경우 tf = >> tf = (A==B) % A

예제 1.1 ( 관계연산자 ) >> A=1:9, B=9-A A = B = >> tf = A>4 % 4 보다큰 A 의원소들을찾을경우 tf = >> tf = (A==B) % A 예제 1.1 ( 관계연산자 ) >> A=1:9, B=9-A A = 1 2 3 4 5 6 7 8 9 B = 8 7 6 5 4 3 2 1 0 >> tf = A>4 % 4 보다큰 A 의원소들을찾을경우 tf = 0 0 0 0 1 1 1 1 1 >> tf = (A==B) % A 의원소와 B 의원소가똑같은경우를찾을때 tf = 0 0 0 0 0 0 0 0 0 >> tf

More information

Microsoft PowerPoint Greedy Method.ppt

Microsoft PowerPoint Greedy Method.ppt 알고리즘 (Algorithm) ( 탐욕적방법 ) 문양세 ( 컴퓨터과학전공, IT 특성화대학, 강원대학교 ) 강의순서 탐욕적알고리즘개요최소비용신장트리 (Minimum Spanning Tree) Dijkstra s Algorithm for the Short Path Problem 배낭채우기문제 (The Knapsack Problem) Page 2 1 탐욕적알고리즘개요

More information

슬라이드 1

슬라이드 1 6-1 리스트 (list) 란순서를가진항목들을표현하는자료구조 리스트를구현하는두가지방법 배열 (array) 을이용하는방법 구현간단 삽입, 삭제시오버헤드 항목의개수제한 연결리스트 (linked list) 를이용하는방법 구현복잡 삽입, 삭제가효율적 크기가제한되지않음 6-2 객체 : n 개의 element 형으로구성된순서있는모임 연산 : add_last(list,

More information

Chapter 4. LISTS

Chapter 4. LISTS 연결리스트의응용 류관희 충북대학교 1 체인연산 체인을역순으로만드는 (inverting) 연산 3 개의포인터를적절히이용하여제자리 (in place) 에서문제를해결 typedef struct listnode *listpointer; typedef struct listnode { char data; listpointer link; ; 2 체인연산 체인을역순으로만드는

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 그래프알고리즘 14 장. 그래프알고리즘 위상정렬, 최소신장트리, 최단경로, 이행폐쇄, 이중연결, 유니언파인드, 네트워크플로우 학습목표 그래프관련용어를이해한다. 그래프를표현하기위한두가지자료구조를이해한다. 신장트리, 최소신장트리알고리즘들을이해한다. 이행폐쇄, 최단경로알고리즘들을이해한다. 이중연결, 유니언파인드, 네트워크플로우알고리즘들을이해한다. 1 Section

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 그래프알고리즘 14 장. 그래프알고리즘 위상정렬, 최소신장트리, 최단경로, 이행폐쇄, 이중연결, 유니언파인드, 네트워크플로우 학습목표 그래프관련용어를이해한다. 그래프를표현하기위한두가지자료구조를이해한다. 신장트리, 최소신장트리알고리즘들을이해한다. 이행폐쇄, 최단경로알고리즘들을이해한다. 이중연결, 유니언파인드, 네트워크플로우알고리즘들을이해한다. 1 그래프 유관한사물

More information

05_tree

05_tree Tree Data Structures and Algorithms 목차 트리의개요 이진트리의구현 이진트리의순회 (Traversal) 수식트리 (Expression Tree) 의구현 Data Structures and Algorithms 2 트리의개요 Data Structures and Algorithms 3 트리의접근과이해 트리는계층적관계 (Hierarchical

More information

리스트 (list), 선형리스트 (linear list): 순서를가진항목들의모임 집합 : 항목간의순서의개념이없음 L = n ( item0, item1,..., item -1) l 리스트의예 l 요일 : ( 일요일, 월요일,, 토요일 ) l 한글자음의모임 : ( ㄱ, ㄴ

리스트 (list), 선형리스트 (linear list): 순서를가진항목들의모임 집합 : 항목간의순서의개념이없음 L = n ( item0, item1,..., item -1) l 리스트의예 l 요일 : ( 일요일, 월요일,, 토요일 ) l 한글자음의모임 : ( ㄱ, ㄴ 00. 리스트 자료구조 01. 링크드 리스트 02. 더블 링크드 리스트 03. 환형 링크드 리스트 리스트 (list), 선형리스트 (linear list): 순서를가진항목들의모임 집합 : 항목간의순서의개념이없음 L = n ( item0, item1,..., item -1) l 리스트의예 l 요일 : ( 일요일, 월요일,, 토요일 ) l 한글자음의모임 : (

More information

1장. 리스트

1장. 리스트 01. 링크드리스트 02. 더블링크드리스트 03. 환형링크드리스트 배열과는달리유연하게크기를바꿀수있는자료구조 각노드는다음노드를가리키는포인터를가짐. 각노드를다음노드를가리키는포인터로연결하여만든리스트. Single Linked List 라고도함. 링크드리스트의첫번째노드를헤드 (Head), 마지막노드를테일 (Tail) 이라고한다. C 언어로표현하는링크드리스트의노드 typedef

More information

JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각

JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 (   ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각 JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( http://java.sun.com/javase/6/docs/api ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각선의길이를계산하는메소드들을작성하라. 직사각형의가로와세로의길이는주어진다. 대각선의길이는 Math클래스의적절한메소드를이용하여구하라.

More information

PowerPoint Presentation

PowerPoint Presentation 자바프로그래밍 1 배열 손시운 ssw5176@kangwon.ac.kr 배열이필요한이유 예를들어서학생이 10 명이있고성적의평균을계산한다고가정하자. 학생 이 10 명이므로 10 개의변수가필요하다. int s0, s1, s2, s3, s4, s5, s6, s7, s8, s9; 하지만만약학생이 100 명이라면어떻게해야하는가? int s0, s1, s2, s3, s4,

More information

<443A5C4C C4B48555C B3E25C32C7D0B1E25CBCB3B0E8C7C1B7CEC1A7C6AE425CBED0C3E0C7C1B7CEB1D7B7A55C D616E2E637070>

<443A5C4C C4B48555C B3E25C32C7D0B1E25CBCB3B0E8C7C1B7CEC1A7C6AE425CBED0C3E0C7C1B7CEB1D7B7A55C D616E2E637070> #include "stdafx.h" #include "Huffman.h" 1 /* 비트의부분을뽑아내는함수 */ unsigned HF::bits(unsigned x, int k, int j) return (x >> k) & ~(~0

More information

»ê¾÷¿¬±¸¿øÇ¥Áö

»ê¾÷¿¬±¸¿øÇ¥Áö Contents Contents Contents Contents Contents Contents Contents 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 Z = X i - X S S, X 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52

More information

슬라이드 1

슬라이드 1 CHAP 6: 큐 yicho@gachon.ac.kr 1 큐 (QUEUE) 큐 : 먼저들어온데이터가먼저나가는자료구조 선입선출 (FIFO: First-In First-Out) ( 예 ) 매표소의대기열 Ticket Box 전단 () 후단 () 2 큐 ADT 삽입과삭제는 FIFO 순서를따른다. 삽입은큐의후단에서, 삭제는전단에서이루어진다. 객체 : n 개의 element

More information

슬라이드 1

슬라이드 1 정적메모리할당 (Static memory allocation) 일반적으로프로그램의실행에필요한메모리 ( 변수, 배열, 객체등 ) 는컴파일과정에서결정되고, 실행파일이메모리에로드될때할당되며, 종료후에반환됨 동적메모리할당 (Dynamic memory allocation) 프로그램의실행중에필요한메모리를할당받아사용하고, 사용이끝나면반환함 - 메모리를프로그램이직접관리해야함

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 11 곡선과곡면 01 Spline 곡선 02 Spline 곡면 03 Subdivision 곡면 C n 연속성 C 0 연속성 C 1 연속성 2 C 2 연속성 01 Spline 곡선 1. Cardinal Spline Curve 2. Hermite Spline Curve 3. Bezier Spline Curve 4. Catmull-Rom Spline Curve 5.

More information

Microsoft PowerPoint - ch07 - 포인터 pm0415

Microsoft PowerPoint - ch07 - 포인터 pm0415 2015-1 프로그래밍언어 7. 포인터 (Pointer), 동적메모리할당 2015 년 4 월 4 일 교수김영탁 영남대학교공과대학정보통신공학과 (Tel : +82-53-810-2497; Fax : +82-53-810-4742 http://antl.yu.ac.kr/; E-mail : ytkim@yu.ac.kr) Outline 포인터 (pointer) 란? 간접참조연산자

More information

C++ Programming

C++ Programming C++ Programming 연산자다중정의 Seo, Doo-okok clickseo@gmail.com http://www.clickseo.com 목 차 연산자다중정의 C++ 스타일의문자열 2 연산자다중정의 연산자다중정의 단항연산자다중정의 이항연산자다중정의 cin, cout 그리고 endl C++ 스타일의문자열 3 연산자다중정의 연산자다중정의 (Operator

More information

Microsoft PowerPoint - C++ 5 .pptx

Microsoft PowerPoint - C++ 5 .pptx C++ 언어프로그래밍 한밭대학교전자. 제어공학과이승호교수 연산자중복 (operator overloading) 이란? 2 1. 연산자중복이란? 1) 기존에미리정의되어있는연산자 (+, -, /, * 등 ) 들을프로그래머의의도에맞도록새롭게정의하여사용할수있도록지원하는기능 2) 연산자를특정한기능을수행하도록재정의하여사용하면여러가지이점을가질수있음 3) 하나의기능이프로그래머의의도에따라바뀌어동작하는다형성

More information

chap x: G입력

chap x: G입력 재귀알고리즘 (Recursive Algorithms) 재귀알고리즘의특징 문제자체가재귀적일경우적합 ( 예 : 피보나치수열 ) 이해하기가용이하나, 비효율적일수있음 재귀알고리즘을작성하는방법 재귀호출을종료하는경계조건을설정 각단계마다경계조건에접근하도록알고리즘의재귀호출 재귀알고리즘의두가지예 이진검색 순열 (Permutations) 1 장. 기본개념 (Page 19) 이진검색의재귀알고리즘

More information

쉽게 배우는 알고리즘 강의노트

쉽게 배우는 알고리즘 강의노트 쉽게배우는알고리즘 ( 한빛미디어 ) 2 장. 상태공간트리의탐색 State-Space Tree State-space tree ( 상태공간트리 ) 문제해결과정의중간상태를각각한노드로나타낸트리 이장에서배우는세가지상태공간탐색기법 Backtracking Branch-and-bound A * algorithm - 2 - 한빛미디어 Travelling Salesman Problem

More information

설계란 무엇인가?

설계란 무엇인가? 금오공과대학교 C++ 프로그래밍 jhhwang@kumoh.ac.kr 컴퓨터공학과 황준하 6 강. 함수와배열, 포인터, 참조목차 함수와포인터 주소값의매개변수전달 주소의반환 함수와배열 배열의매개변수전달 함수와참조 참조에의한매개변수전달 참조의반환 프로그래밍연습 1 /15 6 강. 함수와배열, 포인터, 참조함수와포인터 C++ 매개변수전달방법 값에의한전달 : 변수값,

More information

C프로-3장c03逞풚

C프로-3장c03逞풚 C h a p t e r 03 C++ 3 1 9 4 3 break continue 2 110 if if else if else switch 1 if if if 3 1 1 if 2 2 3 if if 1 2 111 01 #include 02 using namespace std; 03 void main( ) 04 { 05 int x; 06 07

More information

02장.배열과 클래스

02장.배열과 클래스 ---------------- DATA STRUCTURES USING C ---------------- CHAPTER 배열과구조체 1/20 많은자료의처리? 배열 (array), 구조체 (struct) 성적처리프로그램에서 45 명의성적을저장하는방법 주소록프로그램에서친구들의다양한정보 ( 이름, 전화번호, 주소, 이메일등 ) 를통합하여저장하는방법 홍길동 이름 :

More information

CH06)자료구조.hwp

CH06)자료구조.hwp 자료구조 (Data Structure) ) 자료구조의정의 프로그램에서사용하기위한자료를저장매체에저장하는방법및각자료간의관계, 처리방법을분석하는이론 자료의표현과연산의기초과학이다. 일련의자료들을조직화, 구조화시킨다. 모든자료구조에대하여연산처리가가능하다. 구현된자료구조에따라프로그램실행시간이다르다. 2) 자료구조의목적 ( 이유 ) 실제적으로물리적인저장장치는일정한규칙으로하나의선형형태로존재하기때문에그특성에맞게적절한형태로

More information

슬라이드 1

슬라이드 1 Data Structure Chapter 1. 자료구조와알고리즘 Dong Kyue Kim Hanyang University dqkim@hanyang.ac.kr 자료구조와알고리즘 일상생활에서의사물의조직화 해야할일리스트 조직도 일상생활에서의사물의조직화 사전 Ticket Box 3 일상생활과자료구조의비교 일상생활 vs 자료구조 자료구조 스택 큐 리스트 사전, 탐색구조

More information

C 언어 강의노트

C 언어 강의노트 C언어 (CSE2035) (15-1 Lists) Linear list 의구성, Insertion, deletion 윤용운, Ph.D. Dept. of Computer Science and Engineering Sogang University Seoul, Korea Tel: 010-3204-6811 Email : yuyoon0@sogang.ac.kr 2018-01-11

More information

11장 포인터

11장 포인터 Dynamic Memory and Linked List 1 동적할당메모리의개념 프로그램이메모리를할당받는방법 정적 (static) 동적 (dynamic) 정적메모리할당 프로그램이시작되기전에미리정해진크기의메모리를할당받는것 메모리의크기는프로그램이시작하기전에결정 int i, j; int buffer[80]; char name[] = data structure"; 처음에결정된크기보다더큰입력이들어온다면처리하지못함

More information

chap01_time_complexity.key

chap01_time_complexity.key 1 : (resource),,, 2 (time complexity),,, (worst-case analysis) (average-case analysis) 3 (Asymptotic) n growth rate Θ-, Ο- ( ) 4 : n data, n/2. int sample( int data[], int n ) { int k = n/2 ; return data[k]

More information

4장. 순차자료구조

4장. 순차자료구조 순차자료구조방식 자바로배우는쉬운자료구조 이장에서다룰내용 1 선형리스트 2 선형리스트의구현 3 다항식의순차자료구조표현 4 행렬의순차자료구조표현 2 선형리스트 (1) 리스트 (List) 자료를나열한목록 ( 집합 ) 리스트의예 3 선형리스트 (2) 선형리스트 (Linear List) 순서리스트 (Ordered List) 자료들간에순서를갖는리스트 선형리스트의예 4

More information

<4D F736F F F696E74202D20C1A63034B0AD202D20C7C1B7B9C0D3B8AEBDBAB3CABFCD20B9ABB9F6C6DBC0D4B7C2>

<4D F736F F F696E74202D20C1A63034B0AD202D20C7C1B7B9C0D3B8AEBDBAB3CABFCD20B9ABB9F6C6DBC0D4B7C2> 게임엔진 제 4 강프레임리스너와 OIS 입력시스템 이대현교수 한국산업기술대학교게임공학과 학습내용 프레임리스너의개념 프레임리스너를이용한엔터티의이동 OIS 입력시스템을이용한키보드입력의처리 게임루프 Initialization Game Logic Drawing N Exit? Y Finish 실제게임루프 오우거엔진의메인렌더링루프 Root::startRendering()

More information

Microsoft PowerPoint - slide06.pptx

Microsoft PowerPoint - slide06.pptx Im4u 봄방학캠프 DAY 6; Elementary Graph Theory (II) 구종만 jongman@gmail.com 오늘할이야기 최단거리 (Shortest Path) 교과서알고리즘 : Dijkstra s, Floyd s, Bellman- Ford s 그래프모델링 (modeling) 문제에서어떻게그래프를뽑아낼것인가? 최단거리의변형 : multiplicative,

More information

3.2 함수의정의 Theorem 6 함수 f : X Y 와 Y W 인집합 W 에대하여 f : X W 는함수이다. Proof. f : X Y 가함수이므로 f X Y 이고, Y W 이므로 f X W 이므로 F0이만족된다. 함수의정의 F1, F2은 f : X Y 가함수이므로

3.2 함수의정의 Theorem 6 함수 f : X Y 와 Y W 인집합 W 에대하여 f : X W 는함수이다. Proof. f : X Y 가함수이므로 f X Y 이고, Y W 이므로 f X W 이므로 F0이만족된다. 함수의정의 F1, F2은 f : X Y 가함수이므로 3.2 함수의정의 Theorem 6 함수 f : X Y 와 Y W 인집합 W 에대하여 f : X W 는함수이다. Proof. f : X Y 가함수이므로 f X Y 이고, Y W 이므로 f X W 이므로 F0이만족된다. 함수의정의 F1, F2은 f : X Y 가함수이므로성립한다. Theorem 7 두함수 f : X Y 와 g : X Y 에대하여, f = g f(x)

More information

(Microsoft Word - \301\337\260\243\260\355\273\347.docx)

(Microsoft Word - \301\337\260\243\260\355\273\347.docx) 내장형시스템공학 (NH466) 중간고사 학번 : 이름 : 문제 배점 점수 1 20 2 20 3 20 4 20 5 10 6 10 7 15 8 20 9 15 합계 150 1. (20 점 ) 다음용어에대해서설명하시오. (1) 정보은닉 (Information Hiding) (2) 캡슐화 (Encapsulation) (3) 오버로딩 (Overloading) (4) 생성자

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 C 언어포인터정복하기 16 강. 포인터로자료구조화하기 TAE-HYONG KIM COMPUTER ENG, KIT 2 학습내용 구조체멤버와구조체포인터멤버 다른구조체 ( 변수 ) 를가리키는구조체 ( 변수 ) 연결된리스트 의구성및관리 포인터로 연결된리스트 탐색하기 3 중첩구조체에자료저장하기 중첩된구조체변수에값저장하기 struct person { char PRID[15];

More information

슬라이드 1

슬라이드 1 CHAP 7: 트리 C 로쉽게풀어쓴자료구조 생능출판사 2005 트리 (TREE) 트리 : 계층적인구조를나타내는자료구조 트리는부모 - 자식관계의노드들로이루어진다. 대표이사 응용분야 : 계층적인조직표현 총무부 영업부 생산부 파일시스템 인공지능에서의결정트리 전산팀구매팀경리팀생산 1 팀생산 2 팀 트리의용어 노드 (node): 트리의구성요소 루트 (root): 부모가없는노드

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 Lec. 2 : Introduction to R Part 2 Big Data Analytics Short Course 17. 07. 04 R 의데이터구조 : Factor factor() : factor 생성하기 > region = c("a","a","b","c","d") > region [1] "A" "A" "B" "C" "D" > class(region)

More information

Microsoft PowerPoint - 08-chap06-Queue.ppt

Microsoft PowerPoint - 08-chap06-Queue.ppt / 큐 (QUEUE) Chapter 큐 : 먼저들어온데이터가먼저나가는자료구조 선입선출 (FIFO: First-In First-Out) ( 예 ) 매표소의대기열 큐 Ticket ox Dongwon Jeong djeong@kunsan.ac.kr Department of Kunsan National University 전단 () 후단 () 학습목표 큐 DT 큐의개념및추상데이터타입에대한이해

More information

Microsoft PowerPoint - 제8장-트리.pptx

Microsoft PowerPoint - 제8장-트리.pptx 제 8 강의. 트리 (Tree) 자료구조 1. 트리의개념 2. 이진트리 3. 이진트리의저장 1 트리자료구조필요성연결리스트의삽입삭제시데이터를이동하지않는장점을살리자. 연결리스트의검색시노드의처음부터찾아가야하는단점을보완하자. 데이터를중간부터찾아가는이진검색의장점을이용하자. 연결리스트의포인터를리스트의중간에두는방법? ptr 10 23 34 42 56 검색을중간부터시작하여좌우중하나로분기,

More information

중간고사 (자료 구조)

중간고사 (자료 구조) Data Structures 215 중간고사 문제에서명시적으로기술하지않은부분은교재의내용에근거함. 215. 1. 27. 1 다음용어에대하여간단하게설명하시오 ( 각 3 점 *1=3 점 ) 1 abstract data type 6 Circular linked list 2 recursion 3 time complexity 4 space complexity 5 Single

More information

Frama-C/JESSIS 사용법 소개

Frama-C/JESSIS 사용법 소개 Frama-C 프로그램검증시스템소개 박종현 @ POSTECH PL Frama-C? C 프로그램대상정적분석도구 플러그인구조 JESSIE Wp Aorai Frama-C 커널 2 ROSAEC 2011 동계워크샵 @ 통영 JESSIE? Frama-C 연역검증플러그인 프로그램분석 검증조건추출 증명 Hoare 논리에기초한프로그램검증도구 사용법 $ frama-c jessie

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 System Software Experiment 1 Lecture 5 - Array Spring 2019 Hwansoo Han (hhan@skku.edu) Advanced Research on Compilers and Systems, ARCS LAB Sungkyunkwan University http://arcs.skku.edu/ 1 배열 (Array) 동일한타입의데이터가여러개저장되어있는저장장소

More information

08장.트리

08장.트리 ---------------- T STRUTURES USING ---------------- HPTER 트리 /29 트리 (TREE) 트리 : 계층적인구조를나타내는자료구조 트리는부모-자식관계의노드들로이루어짐 응용분야 : 대표이사 총무부 영업부 생산부 전산팀구매팀경리팀 생산 팀 생산 2 팀 (a) 회사의조직도 내문서 동영상음악사진 영화예능드라마 여행 (b) 컴퓨터의폴더구조

More information

<443A5C4C C4B48555C B3E25C32C7D0B1E25CBCB3B0E8C7C1B7CEC1A7C6AE425CBED0C3E0C7C1B7CEB1D7B7A55C4C656D70656C2D5A69762E637070>

<443A5C4C C4B48555C B3E25C32C7D0B1E25CBCB3B0E8C7C1B7CEC1A7C6AE425CBED0C3E0C7C1B7CEB1D7B7A55C4C656D70656C2D5A69762E637070> /* */ /* LZWIN.C : Lempel-Ziv compression using Sliding Window */ /* */ #include "stdafx.h" #include "Lempel-Ziv.h" 1 /* 큐를초기화 */ void LZ::init_queue(void) front = rear = 0; /* 큐가꽉찼으면 1 을되돌림 */ int LZ::queue_full(void)

More information

ePapyrus PDF Document

ePapyrus PDF Document 프로그래밍 콘테스트 챌린징 for GCJ, TopCoder, ACM/ICPC, KOI/IOI 지은이 Takuya Akiba, Yoichi Iwata, Mastoshi Kitagawa 옮긴이 박건태, 김승엽 1판 1쇄 발행일 201 1년 10월 24일 펴낸이 장미경 펴낸곳 로드북 편집 임성춘 디자인 이호용(표지), 박진희(본문) 주소 서울시 관악구 신림동 1451-15

More information

C++ Programming

C++ Programming C++ Programming 예외처리 Seo, Doo-okok clickseo@gmail.com http://www.clickseo.com 목 차 예외처리 2 예외처리 예외처리 C++ 의예외처리 예외클래스와객체 3 예외처리 예외를처리하지않는프로그램 int main() int a, b; cout > a >> b; cout

More information

설계란 무엇인가?

설계란 무엇인가? 금오공과대학교 C++ 프로그래밍 jhhwang@kumoh.ac.kr 컴퓨터공학과 황준하 9 강. 클래스의활용목차 멤버함수의외부정의 this 포인터 friend 선언 static 멤버 임시객체 1 /17 9 강. 클래스의활용멤버함수의외부정의 멤버함수정의구현방법 내부정의 : 클래스선언내에함수정의구현 외부정의 클래스선언 : 함수프로토타입 멤버함수정의 : 클래스선언외부에구현

More information

Microsoft PowerPoint - 알고리즘_5주차_1차시.pptx

Microsoft PowerPoint - 알고리즘_5주차_1차시.pptx Basic Idea of External Sorting run 1 run 2 run 3 run 4 run 5 run 6 750 records 750 records 750 records 750 records 750 records 750 records run 1 run 2 run 3 1500 records 1500 records 1500 records run 1

More information

EA0015: 컴파일러

EA0015: 컴파일러 5 Context-Free Grammar 무엇을공부하나? 앞에서배운 " 정규식 " 은언어의 " 어휘 (lexeme)" 를표현하는도구로사용되었다. 언어의 " 구문 (syntax)" 은 " 정규언어 " 의범위를벗어나기때문에 " 정규식 " 으로표현이불가능하다. 본장에서배우는 " 문맥자유문법 " 은언어의 " 구문 (syntax)" 을표현할수있는도구이다. 어떤 " 문맥자유문법

More information

쉽게 배우는 알고리즘 강의노트

쉽게 배우는 알고리즘 강의노트 쉽게배우는알고리즘 장. 정렬 Sorting http://www.hanbit.co.kr 장. 정렬 Sorting 은유, 그것은정신적상호연관성의피륙을짜는방법이다. 은유는살아있다는것의바탕이다. - 그레고리베이트슨 - 2 - 학습목표 기본정렬알고리즘을이해한다. 정렬을귀납적관점에서볼수있도록한다. 1 장과 2 장에서배운기법을사용해각정렬의수행시간을분석할수있도록한다. 비교정렬의한계를이해하고,

More information

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx #include int main(void) { int num; printf( Please enter an integer "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; } 1 학습목표 을 작성하면서 C 프로그램의

More information

쉽게배우는알고리즘 8장. 동적프로그래밍 프로그래밍 Dynamic Programming (DP)

쉽게배우는알고리즘 8장. 동적프로그래밍 프로그래밍 Dynamic Programming (DP) 쉽게배우는알고리즘 8장. 동적프로그래밍 프로그래밍 Dynamic Programming (DP) http://academy.hanb.co.kr IT COOKBOOK 8장. 동적프로그래밍 Dynamic Programming (DP) 계시란바깥어딘가에서우리한테갑자기주어지는객관적지식이아니다. 만물의근원에대한본질적인귀속감, 우리가거기에아주밀접하게닿아있다는관계성을스스로가발견해내는것이계시다.

More information

Lab 3. 실습문제 (Single linked list)_해답.hwp

Lab 3. 실습문제 (Single linked list)_해답.hwp Lab 3. Singly-linked list 의구현 실험실습일시 : 2009. 3. 30. 담당교수 : 정진우 담당조교 : 곽문상 보고서제출기한 : 2009. 4. 5. 학과 : 학번 : 성명 : 실습과제목적 : 이론시간에배운 Singly-linked list를실제로구현할수있다. 실습과제내용 : 주어진소스를이용해 Singly-linked list의각함수를구현한다.

More information

Microsoft PowerPoint - chap-11.pptx

Microsoft PowerPoint - chap-11.pptx 쉽게풀어쓴 C 언어 Express 제 11 장포인터 컴퓨터프로그래밍기초 이번장에서학습할내용 포인터이란? 변수의주소 포인터의선언 간접참조연산자 포인터연산 포인터와배열 포인터와함수 이번장에서는포인터의기초적인지식을학습한다. 컴퓨터프로그래밍기초 2 포인터란? 포인터 (pointer): 주소를가지고있는변수 컴퓨터프로그래밍기초 3 메모리의구조 변수는메모리에저장된다. 메모리는바이트단위로액세스된다.

More information

저작자표시 - 비영리 - 변경금지 2.0 대한민국 이용자는아래의조건을따르는경우에한하여자유롭게 이저작물을복제, 배포, 전송, 전시, 공연및방송할수있습니다. 다음과같은조건을따라야합니다 : 저작자표시. 귀하는원저작자를표시하여야합니다. 비영리. 귀하는이저작물을영리목적으로이용할

저작자표시 - 비영리 - 변경금지 2.0 대한민국 이용자는아래의조건을따르는경우에한하여자유롭게 이저작물을복제, 배포, 전송, 전시, 공연및방송할수있습니다. 다음과같은조건을따라야합니다 : 저작자표시. 귀하는원저작자를표시하여야합니다. 비영리. 귀하는이저작물을영리목적으로이용할 저작자표시 - 비영리 - 변경금지 2.0 대한민국 이용자는아래의조건을따르는경우에한하여자유롭게 이저작물을복제, 배포, 전송, 전시, 공연및방송할수있습니다. 다음과같은조건을따라야합니다 : 저작자표시. 귀하는원저작자를표시하여야합니다. 비영리. 귀하는이저작물을영리목적으로이용할수없습니다. 변경금지. 귀하는이저작물을개작, 변형또는가공할수없습니다. 귀하는, 이저작물의재이용이나배포의경우,

More information

설계란 무엇인가?

설계란 무엇인가? 금오공과대학교 C++ 프로그래밍 jhhwang@kumoh.ac.kr 컴퓨터공학과 황준하 5 강. 배열, 포인터, 참조목차 배열 포인터 C++ 메모리구조 주소연산자 포인터 포인터연산 배열과포인터 메모리동적할당 문자열 참조 1 /20 5 강. 배열, 포인터, 참조배열 배열 같은타입의변수여러개를하나의변수명으로처리 int Ary[10]; 총 10 개의변수 : Ary[0]~Ary[9]

More information

알고리즘 1장 기본개념

알고리즘 1장 기본개념 Video & Image VIPLProcessing Lab. 2013-1 Myoung-Jin Kim, Ph.D. (webzealer@ssu.ac.kr) Research Professor(Soongsil University) 컴퓨터학과이관용교수 Myoung-Jin Kim, Ph.D. (webzealer@ssu.ac.kr) 알고리즘의기본개념 알고리즘의중요성 자료구조파일처리

More information

Microsoft PowerPoint Predicates and Quantifiers.ppt

Microsoft PowerPoint Predicates and Quantifiers.ppt 이산수학 () 1.3 술어와한정기호 (Predicates and Quantifiers) 2006 년봄학기 문양세강원대학교컴퓨터과학과 술어 (Predicate), 명제함수 (Propositional Function) x is greater than 3. 변수 (variable) = x 술어 (predicate) = P 명제함수 (propositional function)

More information

Chapter 08. 트리(Tree)

Chapter 08. 트리(Tree) 윤성우의열혈자료구조 : C 언어를이용한자료구조학습서 Chapter 08. 트리 (Tree) Introduction To Data Structures Using C Chapter 08. 트리 (Tree) Chapter 08-1: 트리의개요 트리의접근과이해 트리는계층적관계 (Hierarchical Relationship) 를표현하는자료구조이다. 트리의예 트리의예

More information

슬라이드 1

슬라이드 1 -Part3- 제 4 장동적메모리할당과가변인 자 학습목차 4.1 동적메모리할당 4.1 동적메모리할당 4.1 동적메모리할당 배울내용 1 프로세스의메모리공간 2 동적메모리할당의필요성 4.1 동적메모리할당 (1/6) 프로세스의메모리구조 코드영역 : 프로그램실행코드, 함수들이저장되는영역 스택영역 : 매개변수, 지역변수, 중괄호 ( 블록 ) 내부에정의된변수들이저장되는영역

More information