1 / 14

알고리즘 7 주차

알고리즘 7 주차. 10.11.03. 그래프 추상 데이터 타입 (1). 그래프의 정의 G = (V, E) : 그래프 G 는 2 개의 집합 V 와 E 로 구성 V : 공백이 아닌 노드 또는 정점 (vertex) 의 유한집합 V 만 표현 : V(G) 로 표기 E : 상이한 두 정점을 잇는 간선 (edge) 의 유한집합 E 만 표현 : E(G) 로 표기 무방향 그래프 (undirected graph) 간선을 표현하는 두 정점의 쌍에 순서가 없는 그래프

Download Presentation

알고리즘 7 주차

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 알고리즘 7주차 10.11.03

  2. 그래프 추상 데이터 타입(1) • 그래프의 정의 • G = (V, E) : 그래프 G는 2개의 집합 V와 E로 구성 • V : 공백이 아닌 노드 또는 정점(vertex)의 유한집합 • V만 표현 : V(G)로 표기 • E : 상이한 두 정점을 잇는 간선(edge)의 유한집합 • E만 표현 : E(G)로 표기 • 무방향 그래프(undirected graph) • 간선을 표현하는 두 정점의 쌍에 순서가 없는 그래프 • (v0, v1) = (v1, v0) • 방향 그래프(directed graph) • 유방향 그래프 또는 다이그래프(digraph) • 간선을 표현하는 두 정점의 쌍에 순서가 있는 그래프 • vj → vk를 < vj, vk >로 표현 (vj는 꼬리(tail), vk는 머리(head)) • < vj, vk > ≠ < vk, vj >

  3. 그래프 추상 데이터 타입(2) 0 0 3 0 3 2 1 1 2 1 4 2 G1 G2 G3 V(G1)={0, 1, 2, 3} E(G1)={(0, 1), (0, 3), (1, 2), (1, 3), (2, 3)} V(G2)={0, 1, 2} E(G2)={<0, 1>, <1, 0>, <1, 2>} V(G3)={0, 1, 2, 3, 4} E(G3)={(0, 1), (1, 2), (3, 4)} 그래프 예와 각 그래프의 정점 집합과 간선 집합

  4. 그래프 표현 • 그래프 표현 방법 • 인접 행렬(adjacency matrix) • 인접 리스트(adjacency list) • 인접 다중 리스트(adjacency multilist) • 그래프에 수행시키려는 연산과 적용하려는 응용에 따라 선택

  5. 인접 행렬(1) • 인접 행렬(adjacency matrix) • n≥1개의 정점을 가지는 그래프 G = (V, E)에 대해 크기가 nⅹn인 2차원 배열 a[n, n] • 부속 행렬(incidence matrix)이라고도 함 • 인접 행렬로 표현하는데 필요한 공간 : n2비트 • 무방향 그래프 : 행렬의 상위 삼각이나 하위 삼각만 저장한다면 거의 반 정도의 공간을 절약 • 인접 행렬의 정보 • 무방향 그래프 : 행 i 의 합은 정점 i 의 차수 • 방향 그래프 : 행 i의 합은 정점 i의 진출 차수, 열 i의 합은 정점 i의 진입 차수

  6. 인접 행렬(2) 0 0 3 0 3 1 2 1 4 2 1 2 G1 G3 G2 [0] [1] [2] [3] [4] [0] [1] [2] [3] [0] [0] [1] [2] [1] [0] [2] [1] [0] [3] [1] [2] [4] [2] [3] a[4, 4] a[3, 3] a[5, 5] 그래프 G1, G2, G3에 대한 인접 행렬 표현

  7. 인접 리스트(1) • 인접 리스트(adjacency list) • n개의 정점 각각에 대한 인접한 정점들을 리스트로 만듦 • 인접 리스트의 구현 • 연결 리스트 • 순차 표현 • 연결 리스트로 구현한 인접 리스트 • 각각의 정점의 리스트 : 헤더 노드와 vertex 필드, link 필드로 구성된 리스트 노드로 이루어짐 • n개의 정점과 e개의 간선을 가진 그래프에서 • 무방향 그래프는 n개의 헤더 노드와 2e개의 리스트 노드 필요 • 방향 그래프는 n개의 헤더 노드와 e개의 리스트 노드 필요

  8. 인접 리스트(2) header vertex link 0 3 [0] [1] [2] 1 2 [3] G1 (a) G1에 대한 인접 리스트 header 0 [0] [1] 1 [2] 2 G2 (b) G2에 대한 인접 리스트

  9. 프로젝트 작성은 이렇게..

  10. 반복되는 공지 • 과제는 당일의 실습 파일입니다. • 이 말은 항상 과제가 있다는 것입니다. • 가끔 그 주의 실습 내용 이외의 것을 해오라 할 땐 수업 끝날 때 꼭 얘기 해드립니다. 물론 이런 상황은 별로 없을 것이라 생각합니다만.. 갈 때 잘 들어주세요. • 과제는 e-campus에 제출하며 기간은 그 주 실습 날부터 다음주 실습 날까지 입니다. • 가끔 바로 과제 제출 게시판을 열지 못하는 경우가 있지만,반드시 실습 전에는 개설합니다. 혹시 안 열려있다면 다음주 실습 날까지 간간히 확인해 보세요. • 혹시 못 내셨다면 늦게라도 irubeta02@gmail.com에 제출하세요. • 메일로 낸다면 제목 및 파일의 형식은 해당주차_학번_이름을 꼭 지켜주세요. ( Ex) 7주차_20025176_박제훈) 주차는 해당 주차의 ppt 제목에 있습니다. • 보통 당일의 실습 내용은 과제 제출기간이 종료된 시점에서 2주안에 http://testspace.egloos.com에 제가 짠 소스를 올립니다. 못해서 제출을 못한 분은 그 소스를 참조하셔서 제출하세요. 단, 복사-붙여 넣기는 되도록이면 하지 않았으면 좋겠습니다. 본인에게 전혀 도움이 되지 않는 코딩 방법입니다.

More Related