Microsoft PowerPoint - Chap6 [호환 모드]

Size: px
Start display at page:

Download "Microsoft PowerPoint - Chap6 [호환 모드]"

Transcription

1 Data Structure (Chapter 6: Graphs) Sprig, 2 Sookmyug Womeʼs Uiv. Departmet of Multimedia Sciece Prof. Youg-Ho Park

2 Graph 관련주요용어 ( 참고 ) Complete graph : a graph i which there is a edge betwee every pair of vertices. Udirected 경우 edge의수 : (-)/2 Directed 경우 edge의수 : (-) Path : graph G의 vertex v i 에서 v j 에이르는 vertex의순서 simple path: 서로다른정점으로구성된경로 ( 처음과끝정점은같아도됨 ) cycle: 처음과끝정점이같은단순경로 Degree : vertex 에연결된 edge 의수 udirected graph 인경우 idegree / outdegree 로구분 Coected Graph : 임의의 vertex v i 와 v j 모두 path 가존재한경우 Youg-Ho Park Sook Myug Wome's Uiv. 2

3 Graph 관련주요용어 ( 참고 ) Adjacecy Matrix ( 인접행렬 ): vertex의수가 인그래프에서 * 의 2차원배열 (A) 로서 (v i, v j ) 가 E(G) 에속하면 A(i,j)=이되고속하지않으면 A(i,j)=인행렬. b a d a c a b c d a b c d b c a b c a b c Youg-Ho Park Sook Myug Wome's Uiv. 3

4 Graphs 6..2 정의 그래프 (graph) G 는 공집합이아닌정점 (vertex) 들의유한집합 (fiite set) 과 공집합도허용하는간선 (edge) 들의유한집합 (fiite set) 이다. V : 유한한정점 (vertex) 들의집합 E : 간선 (edge) 들의집합 : 정점의쌍집합 Youg-Ho Park Sook Myug Wome's Uiv. 4

5 Graphs Graph - G = (V,E) V(G) : 공집합이아닌정점 (vertex) 들의유한집합 E(G) : 간선 (edge) 의집합 ( 정점의쌍 ) - 무방향 (udirected) 그래프 (v, v) = (v, v) : 무순서 à 순서상관안함 방향 (directed) 그래프 : digraph 라부른다. <v, v> <v, v> : 순서 head tail head tail Youg-Ho Park Sook Myug Wome's Uiv. 5

6 Graphs G, G2 : 무방향그래프 G3 : 방향그래프 (a) G (b) G (c) G 2 3 V(G)={,,2,3} E(G)={(,),(,2),(,3),(,2),(,3),(2,3)} V(G2)={,,2,3,4,5,6} E(G2)={(,),(,2),(,3),(,4),(2,5),(2,6)} V(G3)={,,2} E(G3)={<,>,<,>,<,2>} <,>: 번노드에서 번노드로의방향성 edge 표현 Youg-Ho Park Sook Myug Wome's Uiv. 6

7 Graphs 그래프의제한점 - V(G), E(G) = 집합 (a) self loop (edge) 는허용안됨 (a) (b) 간선의중복은안됨 : 만약있으면, 다중그래프 (multi-graph) (a) Graph with a self edge (b) Multigraph Youg-Ho Park Sook Myug Wome's Uiv. 7

8 Graphs - 정점무방향그래프 - 간선의최대수 = (-)/2 완전 (complete) 그래프 - 정점방향그래프 - 간선의최대수 = (-) (v, v) E(G) v 과 v 은인접 (adjacet) (v, v) 정점 v, v 에서로에부속 (icidet o) <v, v> v 은 v 으로부터인접 (adjacet from) v 은 v 에인접 (adjacet to) G 의부분그래프 G' V(G') V(G) E(G') E(G) Youg-Ho Park Sook Myug Wome's Uiv. 8

9 Graphs (a) G (b) G (c) G (i) (ii) (iii) (iv) (a) some of the subgraphs of G (i) (ii) (iii) (iv) (b) some of the subgraphs of G3 Youg-Ho Park Sook Myug Wome's Uiv. 9

10 Graphs 경로 (path) : 정점 ( 간선 ) 들의연속 - 경로의길이 : 경로상의간선수 - 단순경로 (simple path) : 서로다른정점으로구성된경로 ( 처음과끝정점은같아도됨 ) - 사이클 (cycle) : 처음과끝정점이같은단순경로 - directed path, directed cycle ( 방향그래프의경우 ) 연결 (coected) 그래프, G - vi, vj V(G) vi 에서 vj 로의경로존재 연결요소 (coected compoet, 다음페이지그림참고 ) : - 최대연결부분그래프 (maximal coected sub-graph) 트리 : coected 이고, 사이클없이연결된그래프 (acyclic graph) Youg-Ho Park Sook Myug Wome's Uiv.

11 Graphs 강력연결그래프 (strogly coected graph) G - 모든쌍의정점들사이에상호방향경로 ( 양방향모두 ) 존재 vi, vj V(G) 방향경로 vi vj, vj vi 존재 강력연결요소 (strogly coected compoet) - 강하게연결된최대부분그래프 2 연결요소 (coected compoet) : - 최대연결부분그래프 (maximal coected sub-graph) (c) G 3 - 예 : G4는 2개의 coected compoet를가진그래프이다. - 예 : Gs는 2개의 strogly coected compoet를가진그래프이다. H 4 H Gs G4 Youg-Ho Park Sook Myug Wome's Uiv.

12 Graphs 정점의차수 : 정점 (vertex) 에부속한간선 (edge) 의수 - 방향그래프 v 의진입차수 (i-degree) : v 가간선의머리 : V2 으로유입 v 의진출차수 (out-degree) : v 가간선의꼬리 :V 에서나감 V V2 e = ( - å d i ) / 2, d i 는정점i의차수 Youg-Ho Park Sook Myug Wome's Uiv. 2

13 Graphs 그래프표현 : 그래프를 Mai Memory 내에어떻게표현할것인가? (i) 인접행렬 (adjacecy matrix) 배열 : adj_mat adj_mat[i][j] = : (vi, vj) or (vj, vi) E(G), 즉, edge 가있으면 adj_mat[i][j] = : otherwise 즉, edge 가없으면 무방향 : 대칭, 방향 : 비대칭 공간 2 - 무방향그래프 : (-)/2 로감소 ( 상위삼각행렬 ) vi 의차수 ( 무방향 ) : adj_mat[i][j] 방향그래프 - 행 i 의합 = 방향그래프에서 vi 의진출차수 ( 가로로숫자를센다 ) - 열 j 의합 = 방향그래프에서 vj 의진입차수 ( 세로로숫자를센다 ) Youg-Ho Park Sook Myug Wome's Uiv. 3

14 Youg-Ho Park Sook Myug Wome's Uiv (a) G (b) G 3 (c) G 4 Graphs (a) G (c) G 3 2 H H2 G4

15 Graphs 인접리스트 (adjacecy list) list로표현해보자 개의연결리스트 ( 헤드노드 ) v i : v j lik vi 에인접 무방향그래프 (e : 간선의수 ) : 2e개의리스트노드 방향그래프 : e개의리스트노드 Youg-Ho Park Sook Myug Wome's Uiv. 5

16 Graphs - 다음페이지에그림이있음 #defie MAX_VERTICES 5 /* 정점의최대수 */ typedef struct ode * ode_poiter; typedef struct ode { i vertex; struct ode *lik; }; ode_poiter graph [MAX_VERTICES]; it =; /* 현재사용중인정점들 */ 연결리스트노드의순차적저장 : 배열 ode[ ] - ode[i] = 정점 i 에대한리스트의시작지점 - ode[] = + 2e + - 정점와 i 인접한정점 ode[i],, ode[i+]-에저장 ( i<) Youg-Ho Park Sook Myug Wome's Uiv. 6

17 Graphs HeadNodes data lik [] 3 2 [] 2 3 [2] 3 [3] 2 (a) G HeadNodes [] [] 2 [2] (b) G3 HeadNodes [] 2 [] 3 [2] 3 [3] 2 [4] 5 [5] 6 4 [6] [7] weighted graph = etwork (c) G Youg-Ho Park Sook Myug Wome's Uiv. 7

18 Navigatio of graphs 그래프탐색연산 깊이우선탐색 (depth first search, DFS) - 아래로아래로탐색해나간다. - pre-order tree traversal과유사하다. 넓이우선탐색 (bread first search, BFS) - 같은 level에있는옆동료 vertex들을먼저탐색해나간다. - level-order tree traversal과유사하다. 이것을배우는이유 G 의 v 에서도달할수있는모든연결요소를발견해내기위해 Youg-Ho Park Sook Myug Wome's Uiv. 8

19 Graphs 그래프탐색연산 : 깊이우선탐색 (depth first search, DFS) G=(V, E) : 무방향그래프, 노드 v 에연결된모든정점을방문하는방법 자료구조 - visited[max_vertices] : 배열 ( 초기치 = FALSE) - visited[i] = TRUE : 정점 i 방문 - 인접리스트 Youg-Ho Park Sook Myug Wome's Uiv. 9

20 Graphs #defie FALSE #defie TRUE short it visited[max_vertices]; void dfs(it v) { /* 그래프의정점 v에서시작하는깊이우선탐색 */ ode_poiter w; visited[v] = TRUE; pritf("%5d", v); for (w=graph[v]; w; w=w->lik) if (!visited[w->vertex]) dfs(w->vertex); } Youg-Ho Park Sook Myug Wome's Uiv. 2

21 DFS 동작방법 시작 vertex v 방문 V 의 adjacet list 에서방문하지않은 vertex w 를선택한후, w 에대하여 DFS 를 recursive 하게수행한다. Graphs (a) DFS 방문순서 :,, 3, 7, 4, 5, 2, 6 BFS 방문순서 :,, 2, 3, 4, 5, 6, 7 [] [] [2] [3] [4] [5] [6] [7] (b) Youg-Ho Park Sook Myug Wome's Uiv. 2

22 Graphs 넓이우선탐색 (breadth first search, BFS) /* 자료구조는다음과같다 */ typedef struct queue *queue_poiter; typedef struct queue { it vertex; queue_poiter lik; }; void addq(queue_poiter *, queue_poiter *, it); it deleteq(queue_poiter *); Youg-Ho Park Sook Myug Wome's Uiv. 22

23 void bfs(it v) { /* 정점 v 에서시작하는너비우선탐색. 전역배열 visited 는 } 으로초기화됨. 큐연산은 4 장에서기술한것과유사함 */ ode_poiter w; queue_poiter frot, rear; frot = rear = NULL; /* 큐의초기화 */ pritf("%5d", v); visited[v] = TRUE; addq(&frot, &rear, v); while (frot) { } v = deleteq(&frot); for (w=graph[v]; w; w=w->lik) if (!visited[w->vertex]) { } pritf("%5d", w->vertex); addq(&frot, &rear, w->vertex); visited[w->vertex] = TRUE; Graphs BFS 동작방법 Vertex v 에서시작하여 v 의 adjacet list 에있는모든 vertex 들을방문하고, 방문한 vertex 는모두 queue 에넣고, 방문했음을표시함 Queue 에서 vertex 하나를꺼집어내서이 vertex 의 adjacet list 에서방문하지않은모든 vertex 들을방문한다. Queue 가모두빌때까지이과정을계속한다. Youg-Ho Park Sook Myug Wome's Uiv. 23

24 Graphs 연결요소 (coected compoet) G 의모든연결요소를발견 DFS 나 BFS 의사용 void coect(void) { /* 그래프의연결요소결정 */ it i; for (i=; i<; i++) if (!visited[i]) { dfs(i); pritf("\"); } } Youg-Ho Park Sook Myug Wome's Uiv. 24

25 Graphs 신장트리 (spaig tree) G의신장트리 T - 트리 : E(T) E(G) V(T) = V(G) ( E(T) = -) miimal subgraph ( 간선의수가최소 ) ) (a) DFS() spaig tree (b) BFS() spaig tree Youg-Ho Park Sook Myug Wome's Uiv. 25

26 Graphs 이중결합요소와단절점 G : 무방향연결그래프 단절점 (articulatio poit) : v V(G) - 정점 v 와부속간선제거 두연결요소로분리 이중결합그래프 (bi-coected graph) - 단절점을갖지않는연결그래프, 즉, 이미분리된하나의그래프 이중결합요소 (bi-coected compoet) - 최대이중결합부분그래프 (maximal bicoected subgraph) Youg-Ho Park Sook Myug Wome's Uiv. 26

27 Graphs Youg-Ho Park Sook Myug Wome's Uiv. 27

28 Miimum cost spaig tree 최소비용 (miimum cost) 신장트리 간선의비용합이최소인신장트리 - 갈망법 (Greedy algorithm) - 최적의해를단계별로구하고, 각단계에서최상의결정을내림 Kruskal 알고리즘 ( 참고만 ) - 사이클을형성하지않는 - 개의간선을오름차순으로선택 Youg-Ho Park Sook Myug Wome's Uiv. 28

29 ( 참고 ) Kruskal s algorithm T = { }; while (T가 -개미만의간선포함 && E가비어있지않음 ) { E에서최저비용간선 (v, w) 선택 ; E에서 (v, w) 를삭제 ; if ((v, w) 가 T에서사이클을형성하지않음 ) (v, w) 를 T에추가 ; else (v, w) 를거부 ; } if (T가 -개보다적은간선을포함 ) pritf("no spaig tree\"); Youg-Ho Park Sook Myug Wome's Uiv. 29

30 ( 참고 ) Kruskal s algorithm (a) (b) (c) (d) (e) (f) E 의 sort Heap Sort, Quick Sort O(e log e) 연결이되어서 cycle 을이루는가? 두정점이이미동일한집합에있다면 cycle 임 (g) (h) uio-fid 연산이용 Youg-Ho Park Sook Myug Wome's Uiv. 3

31 ( 참고 )Prim s algorithm - 각단계에서선택된간선의집합 = 트리 T = { }; TV = {}; /* 정점 으로시작. 간선은비어있음.*/ while (T의간선수가 -보다적음 ) { u TV이고 v TV인최저비용간선을 (u, v) 라함 ; if ( 그런간선이없음 ) break; v를 TV에추가 ; (u, v) 를 T에추가 ; } if (T의간선수가 -보다적음 ) pritf("no spaig tree\"); Youg-Ho Park Sook Myug Wome's Uiv. 3

32 ( 참고 )Prim s algorithm Youg-Ho Park Sook Myug Wome's Uiv. 32

33 ( 참고 )Shortest Paths 최단경로 (shortest path) - Edsger Dijkstra 가해결알고리즘제안 - Dijkstra algorithm 이란말로유명 단일출발점모든도착지 (sigle source all destiatios) - v(source) 에서다른모든정점 ( 도착지 ) 까지의 최단경로를찾자! - 경로길이의증가순 ( 방향그래프에서 ) Youg-Ho Park Sook Myug Wome's Uiv. 33

34 ( 참고 )Shortest Paths Path Legth ), 3 2), 3, ), 3, 4, 45 4), 2 45 (a) graph (b) shortest paths from Youg-Ho Park Sook Myug Wome's Uiv. 34

35 ( 참고 )Shortest Paths 가중치 (weight) = 양의값 : adjacet : ot adjacet foud[i] : if foud[i]=true vi 까지의최단경로발견 distace[i] : v 에서 S 내의정점만을거친 vi 까지의최단거리 (S= 최단경로가발견된정점의집합 ) - 초기치 : distace[i] = cost[][i] - cost[i][j] : <i, j> 의가중치 그래프 : 비용인접행렬 (cost adjacecy matrix) 로표현 최단경로 i - k = (vi,..., vj, vk) shortest + shortest shortest Youg-Ho Park Sook Myug Wome's Uiv. 35

36 ( 참고 )Shortest Paths Repeat () select i such that foud[i]=false distace[i] = mi{distace[j]} j, foud[i]=false (2) foud[i] TRUE ( S S {vi} ) (3) j, s.t. foud[j] = FALSE distace[j] mi{distace[j], distace[i]+cost[i][j]} ( adjust all distaces i distace, which are ot i S) Youg-Ho Park Sook Myug Wome's Uiv. 36

37 ( 참고 )Shortest Paths #defie INT_MAX void shorestpath(it v, it weight[][max_no_vertices], it distace[], it, short it foud[]) { it i, mipos, w, mi; for (i=;i<;i++) { foud[i]=false; distace[i]=cost[v][i]; } foud[v] = TRUE; distace[v] = ; for (i=; i<-2; i++) { mi = INT_MAX; mipos = -; for (w=;w<;w++) if (distace[w] < mi &&!foud[w]) { mi = distace[w]; mipos = w; } foud[mipos] = TRUE; for (w=;w<;w++) if (!foud[w]) if (distace[mipos]+cost[mipos][w] < distace[w]) distace[w] = distace[mipos]+cost[mipos][w]; } } Youg-Ho Park Sook Myug Wome's Uiv. 37

38 Data Structure (Chapter 8: Hashig) Sprig, 2 Sookmyug Womeʼs Uiversity Departmet of Multimedia Sciece Prof. Youg-Ho Park

39 빠른저장및검색데이터구조 지금까지, 배운것은무엇인가? 데이터 () 저장방법및 (2) 검색구조에대해배웠다 순차성을극복한, tree 구조등이빠르고좋다고배웠다 그럼, tree보다더빠르고효과적인구조는없는가? 있다! à Hash Structure! (Hashig 하자!) Youg-Ho Park Sook Myug Wome's Uiv. 2

40 우리주변에는이런큰건물들을자주볼수있다. 멋진건물이구나 그런데, 여기서사람을찾기가여간힘든것이아니다. 어떻게하면, 그이를빨리찾을수있을까 Youg-Ho Park Sook Myug Wome's Uiv. 3

41 앗, 관리인아저씨다 ~! 그렇다. 우리는이분의힘을빌려야한다. 그런데, 가끔이분이제역할을못하면, 헛수고다. Youg-Ho Park Sook Myug Wome's Uiv. 4

42 박종칠 (A 군 ) A 군과 B 군의숙박기 매니져 박질주 (B 군 ) 방있나요?? 이분이매니져슈퍼맨아저씨다! 힘쎄고, 아직쓸만하다. 매니져가이들에게어떤방을결정할까? 결정을기다려보자. Youg-Ho Park Sook Myug Wome's Uiv. 5

43 매니져의방배정결과 Youg-Ho Park Sook Myug Wome's Uiv. 6

44 숨겨진그이를찾고싶다 요기 ~ 음 나만이 B 를찾을수있어 ~ 박질주 (B) 씨는어디있나요? 잠깐기다려봐요아가씨 ~ f (B) à 층 2 호실 층을가서찾아보면 2 호를찾을수있습니다. 거기에 B 의실체가있다! Youg-Ho Park Sook Myug Wome's Uiv. 7

45 본예제등장인물의역할분석 Bucket: 이것은 slot 이 3 개짜리임 박종칠데이터의 key 값 (A) 해쉬함수 (Hash Fuctio) 박질주데이터의 key 값 (B) 질의 ( 검색요청 ) Bucket 을가진 Hash 구조 Youg-Ho Park Sook Myug Wome's Uiv. 8

46 내옷이랑똑같은옷이어디있나요? 7 번복도를찾아보세요 우리주위에는 Hash 의개념이많이있다. 이때, 역시필요한것은현명한 guider 이다. Youg-Ho Park Sook Myug Wome's Uiv. 9

47 Hash Structure! (Hashig 하자!) 란? Hash? 사전 : 다진고기요리, 다지다, 잘게썰다 Hashig? 데이터를잘게나누어보관하고, 보관한방법대로찾는기법 Three Major Factors i Hashig?. Hash Structure ( 기본 Hash 구조를어떻게잡을까?) 2. Hashig Fuctios ( 똑똑한함수 : 골고루분산 ) 3. Overflow Solutios ( 넘치는문제를현명하게해결하는법 ) 4. à We lear the key features havig woderful efficiecy! Youg-Ho Park Sook Myug Wome's Uiv.

48 해싱 (Hashig) 레코드 : 주소 애트리뷰트 ( 기본키를가지고 ) à 파일내의레코드를찾아냄가능한주소공간 >> 실제주소공간 > 레코드의수논리적 - 물리적독립성 키값들은주소공간에독립적키값은그대로두고해쉬함수만조정 해싱함수 (hashig fuctio) 키공간을주소공간으로사상 (mappig) 주소 ß hash( 키 ) 주소 유효키공간 Sook Myug Wome's Uiv.

49 Hash i Mai Memory? Hard Disk? Hash 는 Mai Memory Hard Disk à 모두에서사용되는구조이다. 그러므로, Hash Structure i Mai Memory Hash File i Hard Disks 라는용어를쓴다. 본내용에서는특별한경우에만파일을언급한다. Sook Myug Wome's Uiv. 2

50 해싱의특성 해싱 (hashig) 키에서변환되어나온주소에레코드를저장하는과정 ( 기법 ) 해싱에서의레코드검색방법 키 ( 를가지고 ) à 주소 ( 를찾아감 ) à 레코드접근 ( 해서 data 를얻어냄 ) 순차화일 : 레코드수가많으면, 수에비례해서탐색시간많이걸림해싱 : 반드시그런것만은아님 해쉬구조설계시고려해야하는사항들 버켓크기 : 화일에서같은주소에포함될수있는레코드수 적재율 : ( 저장된화일의레코드수 / 버켓의총용량 ) 해싱함수 : 주소생성을위한변환절차 오버플로해결기법 : 버켓의오버플로우 Sook Myug Wome's Uiv. 3

51 버켓 (bucket) 크기 버켓 (bucket) 이란? 어떤 key를가지고함수를통과한, 같은해싱주소를가지는파일의한구역한버켓에는여러개의하나레코드가들어갈수있음 하나의물리적레코드 : 한번의접근으로채취가능한레코드개수 충돌 (Collisio) 이란? 2개의레코드가동일버켓으로해슁될때, (2번째를포함해서 ) 2번째이후의레코드가버켓으로삽입됨으로인해발생하는기본현상을말함동거자 (syoym) - 동일주소로해싱된 2개이상의키는서로동거자임오버플로우 (overflow) 한버켓이 syoym으로가득찬현상을말함 버켓크기를증가시키면 à 즉, 버켓크기를크게키우면 오버플로우가발생할확률이감소됨그러나, 버켓내에레코드가많아지므로, 레코드탐색시간이증가됨 Sook Myug Wome's Uiv. 4

52 적재밀도 (loadig desity) () 파일을 full 로유지 ( 밀도높이면 )? à 논리적접근 ( 비교 ) 수가증가 빈공간을증가시키면 ( 밀도낮추면 )? à 기억장소의비효율을가져옴 홈버켓 (home bucket) 해싱함수에주소생성됨 이주소에있는것을홈버켓이라고함 적재밀도 (loadig desity) ( 파일의레코드수 ) / ( 홈버켓의총용량 ) 7% 이상이면충돌급증 à 홈버켓을다채우지말고, 7% 이하로데이터를채워야충돌이적다! Sook Myug Wome's Uiv. 5

53 적재밀도 (loadig desity) (2) 예상오버플로우확률? N : 홈버켓의개수 C : 각버켓의용량 K : 화일에저장된레코드수 K 적재밀도 = < C N 예 : 3% 를빈공간으로목표하고자한다면 K: 레코드수 : 6, 개 C: 버켓크기 ( 용량 ) : 2 (2개의 record가들어갈수있도록함 ) N: 홈버켓수 = (6,/2) x.7 = 7,43 개 à 오버플로우비율 : 2.3 % ( 뒤 page 표참조 ),278 오버플로우레코드에대한예비 Sook Myug Wome's Uiv. 6

54 예상파일오버플로비율 버켓크기 적재밀도 (%) = 버켓이레코드로얼마나채워져있는지의비율 % 개 % Sook Myug Wome's Uiv. 7

55 해쉬주요사항 (Three Major Factors) 해쉬테이블 ( 구조 ) 해쉬함수 오버플로우해결책 Youg-Ho Park Sook Myug Wome's Uiv. 8

56 정적 (Static) Hashig Idetifiers: 저장할것들 x f(x) = a hash fuctio hash table a Bucket 주소 bucket X 를여기에저장하면됨 X 같은것이한 bucket 에여러개들어갈수있음 ( slots) Youg-Ho Park Sook Myug Wome's Uiv. 9

57 해쉬테이블 Hash tables - store the idetifiers i a fixed size table called a hash table 2 s- 2 b buckets, ad s slots i each bucket b- Youg-Ho Park Sook Myug Wome's Uiv. 2

58 ( 참고 ) 해쉬테이블 Def) - Idetifier desity of a hash table: /T where : umber of idetifiers i table T: total umber of possible idetifiers - Loadig desity or loadig factor of a hash table: a = /(s b) where s: umber of slots i each bucket b: umber of bucket Youg-Ho Park Sook Myug Wome's Uiv. 2

59 ( 참고 ) 해쉬테이블 - Two idetifiers i ad i2 are syoyms with respect to f, if f(i) = f(i2) where i ¹ i2 - A overflow occurs whe we hash a ew idetifier, i, ito a full bucket - A collisio occurs whe we hash two o-idetical idetifiers ito the same bucket - Collisios ad overflows occur simultaeously iff bucket size is Youg-Ho Park Sook Myug Wome's Uiv. 22

60 ( 참고 ) 해쉬테이블 예 ) hash table ht with b=26, s=2, = hash 함수 f - st character of idetifier slot slot acos ata 2 char ceil 3 defie 4 exp 5 float floor 6 25 Idetifiers acos defie float exp char ata ceil floor clock ctime hash table with 26 bucket ad two slots per bucket Youg-Ho Park Sook Myug Wome's Uiv. 23

61 해쉬함수 requiremets for a hash fuctio - easy to compute - miimizes the umber of collisio (but, we ca ot avoid collisios) uiform hash fuctio ( 목표 ) - for radomly chose x from the idetifier space, P[f(x)=i] = /b, for all buckets i - a radom x has a equal chace of hashig ito ay of the b buckets Youg-Ho Park Sook Myug Wome's Uiv. 24

62 해싱함수 변환함수 : 키 à 버켓주소해싱함수계산시간 << 보조기억장치의버켓접근시간모든주소에대한균일한분포 주소변환과정 키가숫자가아닌경우정수값 (A) 으로변환키 A 2 3 변환된정수값 (A) 을주소공간의자리수만큼의정수값 (B) 으로변환 A B ( 균일분포, 예 : 4자리 ) 해싱함수 얻어진정수값 (B) 을주소공간의실제범위에맞게조정 B 주소 ( 주소공간의크기, 예 : 7 번지까지 ) Sook Myug Wome's Uiv. 25

63 펭귄 의 Hashig 핵심정리 - 제산잔여 원 : 레코드 Key x, y, z, 등을가진레코드전체집합 ( 실세계 ) z z: key y F (x) à 통과시 bucket 주소생성 à 생성주소는우측 ~4 이내 à 주소로해당레코드이동 - 중간제곱 - 중첩 - 숫자분석 - 숫자이동변환 - 진수변환 - ( 참고 ) Exclusive-OR 법 ㅠ 넘침 x 7% 채움 Memory 연속주소공간 ( 이걸나눠서 bucket 으로 ) 채움의목표 : 골고루분산 개방주소법 : 기본및이차집중현상을해결하는 static 공간 rehashig 법 폐쇄주소법 : 넘치는레코드를동적 chaiig, 동적 rehashig 하는법 채움의주체 : 해쉬함수 몰려넘치면 : 개방, 폐쇄주소법 Sook Myug Wome's Uiv. 26

64 ( 참고 ) 해쉬함수 : mid-square 방법 ( 중간제곱해싱 ) - middle of square hash fuctio - frequetly used i symbol table applicatios hash fuctio fm )squarig the idetifier 2)obtai the bucket address by usig a appropriate umber of bits from the middle of the square 3)if we use r bits, 2 r buckets are ecessary Youg-Ho Park Sook Myug Wome's Uiv. 27

65 해싱함수 중간제곱해싱 (Mid square hashig) 키값을제곱하여중간에서 개의숫자를취함 주소범위 ( ) 에맞춤 *.7 = 6588 ( < 주소 7 ) Sook Myug Wome's Uiv. 28

66 중간제곱해싱예 키값 키제곱 상대주소 ** 충돌 ** 6 Sook Myug Wome's Uiv. 29

67 해쉬함수 : Divisio(modular) 방법 ( 제산잔여해싱 ) - use the modulus(%) operator fd(x) = x % M where M: table size - rage of bucket address: ~ M- - the choice of M is critical - choose M as a prime umber such that M does ot divide r k ±a for small k ad a - choose M such that it has o prime divisors less tha 2 Youg-Ho Park Sook Myug Wome's Uiv. 3

68 해싱함수 - 제산잔여해싱 주소 = 키값 mod 제수 제수 - 제수 예 ) 제수가 2 일경우, 53 % 2 = ( 번지 ) 직접주소공간의크기를결정 ( 제수 -) 제수 > 파일의크기 충돌가능성이가장적은것으로선택 소수 2보다작은소수를인수로갖지않는, 비소수 Sook Myug Wome's Uiv. 3

69 제산잔여해싱의적재율과성능 적재율 실제레코드의수 = 적재할수있는최대레코드의수 적당한성능 최대허용치 :.7.8의적재율 레코드 à (.25 * ) 의주소공간을가지고있어야 à bucket.7.8의적재율을유지할수있다. Sook Myug Wome's Uiv. 32

70 제산잔여해싱예 키값 상대주소 *** 충돌 *** 제수 =53 Sook Myug Wome's Uiv. 33

71 해쉬함수 : Foldig 방법 ( 중첩해싱 ) )shift foldig ex) idetifier x = x x2 x3 x x )foldig at the boudaries x x = 897 Youg-Ho Park Sook Myug Wome's Uiv. 34

72 해싱함수 - 중첩 (Foldig) 중첩 (foldig) 해싱 키값을주소와같은자리수를가지는몇개의부분으로나눔접어서합을구함경우에따라제일높은자릿수버림 예 ) 키값 ( ), 주소크기 (4) 버림 Sook Myug Wome's Uiv. 35

73 중첩해싱예 키값 상대주소 ** 충돌 ** 274 ** 충돌 ** Sook Myug Wome's Uiv. 36

74 해쉬함수 : Digit Aalysis 방법 ( 숫자분석 ) - used i case all the idetifiers are kow i advace - examie the digits of each idetifier - delete those digits that have skewed distributios - select the digit positios to be used to calculate the hash address Youg-Ho Park Sook Myug Wome's Uiv. 37

75 해싱함수 - 숫자분석 키값이되는숫자의분포이용 키의모든자리수에대한빈도테이블 주소로사용될숫자의위치들을선택 균일한분포 ( 같은빈도수 ) Sook Myug Wome's Uiv. 38

76 ( 참고 ) 해싱함수 - Exclusive-OR 변환 키의길이가길때 제산잔여방법을적용하기전에수행한키를두세그먼트로나눔두세그먼트를입력으로비트레벨 Exclusive-OR 수행 EX-OR : procedure (arg, arg2) Retue((arg OR arg2) AND (NOT(arg AND arg2))); END EX-OR; Addr = EX-OR(Keypart, Keypart2); Ex-OR('RA', 'MA') = Ex-OR('MA', 'RA') 장점 : 빠른연산 ( 연산을하드웨어적으로수행 ) Sook Myug Wome's Uiv. 39

77 해싱함수 - 숫자이동변환 중앙을양분 2 안쪽으로 shift 3 주소범위에맞도록조정 ( 조정상수 ) 키 : 주소길이 d d2 d3 d4 d5 d6 d7 d8 주소공간 : *.5 = 3456 실제주소 예키 : 주소 : Sook Myug Wome's Uiv. 4

78 해싱함수 - 진수변환. 키값의진수를다른진수로변환 2. 초과하는높은자리수를절단 예 ) 7248 : 키값 주소공간 : 7 진수 : 변환 = 보정 : 6373 *.7 = 446 Sook Myug Wome's Uiv. 4

79 오버플로해결방법 오버플로 삽입할레코드가꽉찬버켓에해싱될때 해결방법 개방주소법폐쇄주소법 개방주소법 계산접근법탐색할버켓의주소를동적으로계산 폐쇄주소법 ( 체인법 ) 자료구조접근법오버플로버켓을체인으로홈버켓에연결 Sook Myug Wome's Uiv. 42

80 오버플로해결기법 - () 개방주소법 (ope addressig) 선형조사 (liear probe) 다음의빈공간을순차적으로탐색 A i = f(i, 키 ) i =,,2,... ex) A i = (i step + hash( 키 )) mod N 삽입방법 : A i 버켓이만원이면 A i+ 고려 빈자리가있는버켓일때까지반복 탐색방법 : 찾는레코드가 A i 에없으면 A i+ 탐색 레코드를찾거나빈버켓일때까지반복 문제점 : 집중 (clusterig) 레코드가전체버켓에골고루분산되지않고특정지역에집중됨 두가지종류의집중 (clusterig) 기본집중 (primary clusterig) 이차집중 (secodary clusterig) Sook Myug Wome's Uiv. 43

81 기본집중 (primary clusterig) 정의 처음어떤버켓에해시된레코드를처리하기위해조사하는버켓들이똑같은순서에따라두번째버켓에해시된레코드들에의해서도사용됨 예 : 홈버켓의수 N=3 경우 A i = (i*3 + hash(key)) mod 3 여러키에대한버켓들의주소 sequece Hash(key) 값이 25, 28, 인키들은같은 sequece 가짐 버켓 25 에오버플로나면버켓 28 조사 ; 버켓 28 이오버플로될확률증가 Hash(key) 값이 7,, 3인키들은같은 sequece 가짐한키에대한주소 sequece 에서같은 A i 가나오면같은 A i+ 나옴 Sook Myug Wome's Uiv. 44

82 선형조사 (liear probe) 의문제점 선형함수를사용하기때문에같은 sequece 나옴 해결책 : 비선형조사 (o-liear probe) A i = (i * 3 + i 2 * 5 + hash(key)) mod 3 조사순서 ( 표 8.6) 선형의경우와다른점 여러키에대해서같은 A i 가나오더라도 A i+ 은다름 한키에대한주소 sequece 에서같은 A i 가나오더라도다른 A i+ 나옴 Sook Myug Wome's Uiv. 45

83 제 2 차집중 (secodary clusterig) 비선형조사의문제점 여러키가일단같은홈버켓에사상되면그이후는같은 sequece 가지게됨 è 이차집중예 : 여러키가 25에해싱이집중되는경우 à 2, 2, 7, 24 등이빨리만원이될가능성 해결책 : 이중해싱 (double hashig) A = hash(key) A i = (A i- + hash2(key)) mod N (i>) 예 ( 표 8.7) A = hash(key) hash(key) = key mod 3 A i = (A i- + hash2(key)) mod N hash2(key) = + ëkey/3û mod 29 Sook Myug Wome's Uiv. 46

84 개방주소법의문제 레코드의삭제 삭제된레코드를공간으로처리이후의오버플로검색실패 해결방법 레코드의논리적삭제 삭제표시 재해싱 (rehashig) 이후의레코드를삭제후재삽입 Sook Myug Wome's Uiv. 47

85 개방주소법에서레코드의삭제 Remid: 개방주소법에서레코드의검색 버켓에빈공간이발견되면해당레코드없는것으로간주 개방주소법에서레코드가삭제된후검색에서문제가됨 삭제된레코드를공간으로처리 à 이후의오버플러검색실패 예 : 그림 선형조사법 (Liear probe) 사용 : step= A, B, C, D는 2에해싱됨 W, X, Y는 22에해싱됨 이때만약, A, B, C, W, D, X, Y 순서로삽입되면, W가삭제된후 D, X, Y를검색하고자하면 해결방법 검색성공못함 레코드의논리적삭제 - 삭제표시재해싱 (rehashig) 이후의레코드를삭제후재삽입 Sook Myug Wome's Uiv. 48

86 삭제표시 검색때는레코드있는것으로취급 새레코드삽입때는빈공간취급 문제점 : 한공간을레코드가차지하면추후로는다시빈공간안됨 빈공간 à 사용 ; 삭제표시 à 사용 ; 사용 à 삭제표시 검색에시간이오래걸리게됨해결책 : 재구성 구파일을신파일로대체삭제표시없는레코드신파일로해싱 Sook Myug Wome's Uiv. 49

87 재해싱 (rehashig) 레코드삭제하여빈공간만들고나머지레코드를재해싱 나머지레코드가어떤레코드들인지는어떤오버플로기법을사용했는지에따라다름 선형조사에 step 을사용했을경우 재해싱레코드 : 삭제된레코드다음부터빈공간이전까지의레코드들 예 : 그림 W 삭제후 D, X, Y 재해싱 재해싱의단점 선형조사가아닌복잡한개방주소법에서재해싱레코드를찾는것이쉽지않음 시간이많이걸림 Sook Myug Wome's Uiv. 5

88 오버플로해결기법 - (2) 폐쇄주소법 (closed addressig) 폐쇄주소법 체인법 (chaiig) 오버플로레코드들을오버플로구간이나만원이안된임의의버켓에저장. 별도의리스트유지, 홈버켓에서연결 포인터공간문제 2. 연합리스트 홈버켓의여분의공간에저장 포인터공간감소 검색비용증가 3. 디렉토리방법 오버플로레코드의키 / 포인터저장 Sook Myug Wome's Uiv. 5

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

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

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

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

More information

5장 스택

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

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 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

슬라이드 1

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

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

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

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

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

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

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

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

More information

제 6 장 그래프

제 6 장 그래프 제 장 그래프 Copyright DBLAB, Seoul National University 그래프추상데이타타입 () 개요.. 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

More information

8장직접화일 DBLAB, SNU v 직접화일의개념 u 임의접근화일 (random access file) 임의의레코드키값으로그레코드를접근할수있는화일 직접화일 (direct file), 직접접근화일 (direct access file) 다른레코드를참조하지않고특정레코드접근이

8장직접화일 DBLAB, SNU v 직접화일의개념 u 임의접근화일 (random access file) 임의의레코드키값으로그레코드를접근할수있는화일 직접화일 (direct file), 직접접근화일 (direct access file) 다른레코드를참조하지않고특정레코드접근이 8장직접화일 v 직접화일의개념 u 임의접근화일 (random access file) 임의의레코드키값으로그레코드를접근할수있는화일 직접화일 (direct file), 직접접근화일 (direct access file) 다른레코드를참조하지않고특정레코드접근이가능 순차접근화일 u 직접화일의종류 인덱스된화일 (indexed file) 인덱스를이용해레코드를접근 인덱스된순차화일

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

4.1 관계

4.1 관계 심볼테이블 사전 (dictionary) 철자검색기, 시소러스, 데이터베이스관리응용에서데이터사전 로더, 어셈블러, 컴파일러에의해생성되는심볼테이블 컴퓨터분야에서는심볼테이블이라는용어를사용 심볼테이블 이름 - 속성쌍의집합 C++ 에서 map words ; words[ time ] = 1 ; 시소러스는이름은단어, 속성은동의어 컴파일러는이름은식별자로,

More information

슬라이드 1

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

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

Microsoft PowerPoint - ch12 - Graph, Graph Algorithms

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

More information

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

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

More information

05 암호개론 (2)

05 암호개론 (2) 정보보호 05 암호개론 (3) Hashing (1) dictionary symbol table in computer science application spelling checker thesarus data dictionary in database application symbol tables generated by loader, assembler, and

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

쉽게배우는알고리즘 6장. 해시테이블 테이블 Hash Table

쉽게배우는알고리즘 6장. 해시테이블 테이블 Hash Table 쉽게배우는알고리즘 6장. 해시테이블 테이블 Hash Table http://academy.hanb.co.kr 6장. 해시테이블 테이블 Hash Table 사실을많이아는것보다는이론적틀이중요하고, 기억력보다는생각하는법이더중요하다. - 제임스왓슨 - 2 - 학습목표 해시테이블의발생동기를이해한다. 해시테이블의원리를이해한다. 해시함수설계원리를이해한다. 충돌해결방법들과이들의장단점을이해한다.

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

14장.탐색

14장.탐색 ---------------- DATA STRUCTURES USING C ---------------- CHAPTER 탐색 1/28 탐색 (search) 이란? 여러개의자료중에서원하는자료를찾는작업 컴퓨터가가장많이하는작업중의하나 탐색을효율적으로수행하는것은매우중요 탐색키 (search key) 항목과항목을구별해주는키 (key) 탐색을위하여사용되는자료구조 배열,

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

슬라이드 1

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

More information

<443A5C4C C4B48555C B3E25C32C7D0B1E25CBCB3B0E8C7C1B7CEC1A7C6AE425CC0E7B0EDB0FCB8AE5C53746F636B5F4D616E D656E74732E637070>

<443A5C4C C4B48555C B3E25C32C7D0B1E25CBCB3B0E8C7C1B7CEC1A7C6AE425CC0E7B0EDB0FCB8AE5C53746F636B5F4D616E D656E74732E637070> 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include "QuickSort.h" 7 using namespace std; 8 9 10 Node* Queue[100]; // 추가입력된데이터를저장하기위한 Queue

More information

Microsoft PowerPoint - ch10 - 이진트리, AVL 트리, 트리 응용 pm0600

Microsoft PowerPoint - ch10 - 이진트리, AVL 트리, 트리 응용 pm0600 균형이진탐색트리 -VL Tree delson, Velskii, Landis에의해 1962년에제안됨 VL trees are balanced n VL Tree is a binary search tree such that for every internal node v of T, the heights of the children of v can differ by at

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

Microsoft PowerPoint Hash Structures.ppt

Microsoft PowerPoint Hash Structures.ppt 자료처리 () 2006 년봄학기문양세강원대학교컴퓨터과학과 임의접근파일 (Random Access File) 임의접근파일 (random access file) 임의의레코드에그레코드의키값을사용하여그키값을가지는레코드에랜덤하게 ( 직접적으로 ) 접근할수있는파일 (= 직접파일 (direct file), 직접접근파일 (direct access file)) 다른레코드를참조하지않고도,

More information

06장.리스트

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

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

Discrete Mathematics

Discrete Mathematics 자료처리 () 2005 년봄학기 문양세컴퓨터과학과강원대학교자연과학대학 임의접근파일 (Random Access File) 임의접근파일 (random access file) 임의의레코드에그레코드의키값을사용하여그키값을가지는레코드에랜덤하게 ( 직접적으로 ) 접근할수있는파일 (= 직접파일 (direct file), 직접접근파일 (direct access file))

More information

Sequences with Low Correlation

Sequences with Low Correlation 레일리페이딩채널에서의 DPC 부호의성능분석 * 김준성, * 신민호, * 송홍엽 00 년 7 월 1 일 * 연세대학교전기전자공학과부호및정보이론연구실 발표순서 서론 복호화방법 R-BP 알고리즘 UMP-BP 알고리즘 Normalied-BP 알고리즘 무상관레일리페이딩채널에서의표준화인수 모의실험결과및고찰 결론 Codig ad Iformatio Theory ab /15

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

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 - o8.pptx

Microsoft PowerPoint - o8.pptx 메모리보호 (Memory Protection) 메모리보호를위해 page table entry에 protection bit와 valid bit 추가 Protection bits read-write / read-only / executable-only 정의 page 단위의 memory protection 제공 Valid bit (or valid-invalid bit)

More information

슬라이드 1

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

More information

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

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

More information

Microsoft PowerPoint - Chap5 [호환 모드]

Microsoft PowerPoint - Chap5 [호환 모드] 데이터구조 (hapter 5: Trees) 2011 년봄학기 숙명여자대학교정보과학부멀티미디어과학전공박영호 Index hapter 01: asic oncepts hapter 02: rrays and Structures hapter 03: Stacks and Queues hapter 04: Lists hapter 05: Trees hapter 06: Graphs

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

Microsoft PowerPoint - slide05.pptx

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

More information

public key private key Encryption Algorithm Decryption Algorithm 1

public key private key Encryption Algorithm Decryption Algorithm 1 public key private key Encryption Algorithm Decryption Algorithm 1 One-Way Function ( ) A function which is easy to compute in one direction, but difficult to invert - given x, y = f(x) is easy - given

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

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

예제 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

완벽한개념정립 _ 행렬의참, 거짓 수학전문가 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

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

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

<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

Microsoft PowerPoint - 알고리즘_11주차_2차시.pptx

Microsoft PowerPoint - 알고리즘_11주차_2차시.pptx 5 Collision Resolution by Progressive Overflow Progressive Overflow Linear Probing 51 How Progressive Overflow Works 기본개념 Collision 발생할때, 이후빈공간에삽입 ( 그림 104) End of file 일경우, 처음부터다시검색 ( 그림 105) Circular

More information

쉽게배우는알고리즘 6 장. 해시테이블 Hash Table IT COOKBOOK 6 장. 해시테이블 Hash Table 그에게서배운것이아니라이미내속에있었던것이그와공명을한것이다. - 제임스왓슨 한

쉽게배우는알고리즘 6 장. 해시테이블 Hash Table   IT COOKBOOK 6 장. 해시테이블 Hash Table 그에게서배운것이아니라이미내속에있었던것이그와공명을한것이다. - 제임스왓슨 한 쉽게배우는알고리즘 6 장. 해시테이블 Hash Table http://academy.hanb.co.kr 6 장. 해시테이블 Hash Table 그에게서배운것이아니라이미내속에있었던것이그와공명을한것이다. - 제임스왓슨 - 2 - 한빛미디어 학습목표 해시테이블의발생동기를이해한다. 해시테이블의원리를이해한다. 해시함수설계원리를이해한다. 충돌해결방법들과이들의장단점을이해한다.

More information

UI TASK & KEY EVENT

UI TASK & KEY EVENT 2007. 2. 5 PLATFORM TEAM 정용학 차례 CONTAINER & WIDGET SPECIAL WIDGET 질의응답및토의 2 Container LCD에보여지는화면한개 1개이상의 Widget을가짐 3 Container 초기화과정 ui_init UMP_F_CONTAINERMGR_Initialize UMP_H_CONTAINERMGR_Initialize

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

목차 포인터의개요 배열과포인터 포인터의구조 실무응용예제 C 2

목차 포인터의개요 배열과포인터 포인터의구조 실무응용예제 C 2 제 8 장. 포인터 목차 포인터의개요 배열과포인터 포인터의구조 실무응용예제 C 2 포인터의개요 포인터란? 주소를변수로다루기위한주소변수 메모리의기억공간을변수로써사용하는것 포인터변수란데이터변수가저장되는주소의값을 변수로취급하기위한변수 C 3 포인터의개요 포인터변수및초기화 * 변수데이터의데이터형과같은데이터형을포인터 변수의데이터형으로선언 일반변수와포인터변수를구별하기위해

More information

1장. 리스트

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

More information

CH06)자료구조.hwp

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

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

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

슬라이드 1

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

More information

03장.스택.key

03장.스택.key ---------------- DATA STRUCTURES USING C ---------------- 03CHAPTER 1 ? (stack): (LIFO:Last-In First-Out) 2 : top : ( index -1 ),,, 3 : ( ) ( ) -> ->. ->.... 4 Stack ADT : (LIFO) : init():. is_empty():

More information

K&R2 Reference Manual 번역본

K&R2 Reference Manual 번역본 typewriter structunion struct union if-else if if else if if else if if if if else else ; auto register static extern typedef void char short int long float double signed unsigned const volatile { } struct

More information

Java ...

Java ... 컴퓨터언어 1 Java 제어문 조성일 조건문 : if, switch 어떠한조건을조사하여각기다른명령을실행 if 문, switch 문 if 문 if - else 문형식 if 문형식 if ( 조건식 ) { 명령문 1; 명령문 2;... if ( 조건식 ) { 명령문 1; 명령문 2;... else { 명령문 a; 명령문 b;... 예제 1 정수를입력받아짝수와홀수를판별하는프로그램을작성하시오.

More information

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

Microsoft PowerPoint - 알고리즘_1주차_2차시.pptx Chapter 2 Secondary Storage and System Software References: 1. M. J. Folk and B. Zoellick, File Structures, Addison-Wesley. 목차 Disks Storage as a Hierarchy Buffer Management Flash Memory 영남대학교데이터베이스연구실

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

< E20C6DFBFFEBEEE20C0DBBCBAC0BB20C0A7C7D12043BEF0BEEE20492E707074>

< E20C6DFBFFEBEEE20C0DBBCBAC0BB20C0A7C7D12043BEF0BEEE20492E707074> Chap #2 펌웨어작성을위한 C 언어 I http://www.smartdisplay.co.kr 강의계획 Chap1. 강의계획및디지털논리이론 Chap2. 펌웨어작성을위한 C 언어 I Chap3. 펌웨어작성을위한 C 언어 II Chap4. AT89S52 메모리구조 Chap5. SD-52 보드구성과코드메모리프로그래밍방법 Chap6. 어드레스디코딩 ( 매핑 ) 과어셈블리어코딩방법

More information

<4D F736F F F696E74202D20C1A637C0E52DB0EDB1DEBFACB0E1B8AEBDBAC6AE2E >

<4D F736F F F696E74202D20C1A637C0E52DB0EDB1DEBFACB0E1B8AEBDBAC6AE2E > 제 7 강의. 고급연결리스트 1. 원형연결리스트 2. 이중연결리스트 3. 연결리스트알고리즘 1 1. 원형연결리스트 (Circularly Linked Lists) 원형연결리스트란? 연결리스트의맨끝노드를첫번째노드와연결시켜서원형으로만든리스트 단순연결리스트 (Singly Linked List) 불편한점 - 연결리스트의노드포인터를알고있을때첫번째노드는바로찾아갈수있지만마지막노드는리스트전체를따라가면서끝을찾아가야한다

More information

OCW_C언어 기초

OCW_C언어 기초 초보프로그래머를위한 C 언어기초 4 장 : 연산자 2012 년 이은주 학습목표 수식의개념과연산자및피연산자에대한학습 C 의알아보기 연산자의우선순위와결합방향에대하여알아보기 2 목차 연산자의기본개념 수식 연산자와피연산자 산술연산자 / 증감연산자 관계연산자 / 논리연산자 비트연산자 / 대입연산자연산자의우선순위와결합방향 조건연산자 / 형변환연산자 연산자의우선순위 연산자의결합방향

More information

chap x: G입력

chap x: G입력 원형큐 (Circular Queue) [2] [3] [2] [3] [1] [4] [1] [4] [0] [5] front = 0, rear = 0 [2] [3] [0] [5] front = 0, rear = 3 [1] [4] [0] [5] front = 0, rear = 0 최대큐이용률 = MAX_Q_SIZE 1 3 장. 스택과큐 (Page 13) 원형큐의구현

More information

Microsoft PowerPoint - chap04-연산자.pptx

Microsoft PowerPoint - chap04-연산자.pptx int num; printf( Please enter an integer: "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); } 1 학습목표 수식의 개념과 연산자, 피연산자에 대해서 알아본다. C의 를 알아본다. 연산자의 우선 순위와 결합 방향에

More information

슬라이드 1

슬라이드 1 Pairwise Tool & Pairwise Test NuSRS 200511305 김성규 200511306 김성훈 200614164 김효석 200611124 유성배 200518036 곡진화 2 PICT Pairwise Tool - PICT Microsoft 의 Command-line 기반의 Free Software www.pairwise.org 에서다운로드후설치

More information

Microsoft Word - FunctionCall

Microsoft Word - FunctionCall Function all Mechanism /* Simple Program */ #define get_int() IN KEYOARD #define put_int(val) LD A val \ OUT MONITOR int add_two(int a, int b) { int tmp; tmp = a+b; return tmp; } local auto variable stack

More information

7장인덱스된 순차화일 DBLAB, SNU v 인덱스된순차화일의구조 u 인덱스된순차화일 (indexed sequential file) 은순차데이타화일 (sequential data file) 과인덱스 (index) 로구성 u 순차데이타화일 키값에따라레코드들이순차적으로정렬

7장인덱스된 순차화일 DBLAB, SNU v 인덱스된순차화일의구조 u 인덱스된순차화일 (indexed sequential file) 은순차데이타화일 (sequential data file) 과인덱스 (index) 로구성 u 순차데이타화일 키값에따라레코드들이순차적으로정렬 7장인덱스된 순차화일 v 인덱스된순차화일의구조 u 인덱스된순차화일 (indexed sequential file) 은순차데이타화일 (sequential data file) 과인덱스 (index) 로구성 u 순차데이타화일 키값에따라레코드들이순차적으로정렬 레코드전체에대한순차접근을지원 u 인덱스화일 화일의레코드들에대한키값과포인터를저장 개별레코드에대한직접접근을지원 u

More information

경제수학강의노트 09 미분법 I: 미분법칙, 편미분, 전미분 Do-il Yoo PART III: Comparative-Static Analysis 비교정태분석 Chapter 7: Rules of Differentiation and Their Use in Comparat

경제수학강의노트 09 미분법 I: 미분법칙, 편미분, 전미분 Do-il Yoo PART III: Comparative-Static Analysis 비교정태분석 Chapter 7: Rules of Differentiation and Their Use in Comparat 경제수학강의노트 09 미분법 I: 미분법칙, 편미분, 전미분 Do-il Yoo PART III: Comparative-Static Aalysis 비교정태분석 Chapter 7: Rules of Differetiatio ad Their Use i Comparative Statics 미분법칙과비교정태분석 7.. Rules of Differetiatio for a

More information

Microsoft PowerPoint - 27.pptx

Microsoft PowerPoint - 27.pptx 이산수학 () n-항관계 (n-ary Relations) 2011년봄학기 강원대학교컴퓨터과학전공문양세 n-ary Relations (n-항관계 ) An n-ary relation R on sets A 1,,A n, written R:A 1,,A n, is a subset R A 1 A n. (A 1,,A n 에대한 n- 항관계 R 은 A 1 A n 의부분집합이다.)

More information

Chapter ...

Chapter ... Chapter 4 프로세서 (4.9절, 4.12절, 4.13절) Contents 4.1 소개 4.2 논리 설계 기초 4.3 데이터패스 설계 4.4 단순한 구현 방법 4.5 파이프라이닝 개요*** 4.6 파이프라이닝 데이터패스 및 제어*** 4.7 데이터 해저드: 포워딩 vs. 스톨링*** 4.8 제어 해저드*** 4.9 예외 처리*** 4.10 명령어 수준

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 @ Lesson 2... ( ). ( ). @ vs. logic data method variable behavior attribute method field Flow (Type), ( ) member @ () : C program Method A ( ) Method B ( ) Method C () program : Java, C++, C# data @ Program

More information

7장

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

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

PowerPoint 프레젠테이션

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

More information

Algorithms

Algorithms 자료구조 & 알고리즘 리스트 (List) Seo, Doo-okok clickseo@gmail.com http://www.clickseo.com 목 차 선형리스트 연결리스트 2 선형리스트 선형리스트 선형리스트의개념 선형리스트의구현 연결리스트 3 선형리스트개념 리스트 (List) 목록, 대부분의목록은도표 (Table) 형태로표시 추상자료형리스트는이러한목록또는도표를추상화한것

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 @ Lesson 3 if, if else, if else if, switch case for, while, do while break, continue : System.in, args, JOptionPane for (,, ) @ vs. logic data method variable Data Data Flow (Type), ( ) @ Member field

More information

11장 포인터

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

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

02장.배열과 클래스

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

More information

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

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

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

chap x: G입력

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

More information

Microsoft PowerPoint - 제8장-트리.pptx

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

More information

Line (A) å j a k= i k #define max(a, b) (((a) >= (b))? (a) : (b)) long MaxSubseqSum0(int A[], unsigned Left, unsigned Right) { int Center, i; long Max

Line (A) å j a k= i k #define max(a, b) (((a) >= (b))? (a) : (b)) long MaxSubseqSum0(int A[], unsigned Left, unsigned Right) { int Center, i; long Max 알고리즘설계와분석 (CSE3081-2반 ) 중간고사 (2013년 10월24일 ( 목 ) 오전 10시30분 ) 담당교수 : 서강대학교컴퓨터공학과임인성수강학년 : 2학년문제 : 총 8쪽 12문제 ========================================= < 주의 > 답안지에답을쓴후제출할것. 만약공간이부족하면답안지의뒷면을이용하고반드시답을쓰는칸에답안지의어느쪽의뒷면에답을기술하였는지명시할것.

More information

Microsoft PowerPoint - chap06-2pointer.ppt

Microsoft PowerPoint - chap06-2pointer.ppt 2010-1 학기프로그래밍입문 (1) chapter 06-2 참고자료 포인터 박종혁 Tel: 970-6702 Email: jhpark1@snut.ac.kr 한빛미디어 출처 : 뇌를자극하는 C프로그래밍, 한빛미디어 -1- 포인터의정의와사용 변수를선언하는것은메모리에기억공간을할당하는것이며할당된이후에는변수명으로그기억공간을사용한다. 할당된기억공간을사용하는방법에는변수명외에메모리의실제주소값을사용하는것이다.

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 MySQL - 명령어 1. 데이터베이스관련명령 2. 데이터베이스테이블관련명령 3. SQL 명령의일괄실행 4. 레코드관련명령 5. 데이터베이스백업및복원명령 1. 데이터베이스관련명령 데이터베이스접속명령 데이터베이스접속명령 mysql -u계정 -p비밀번호데이터베이스명 C: > mysql -ukdhong p1234 kdhong_db 데이터베이스생성명령 데이터베이스생성명령

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

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