공대생 정리노트
Graphs(1) 본문
Graph
Graph G = (V,E)라고 표기하고 vertices(node)의 집합 V와 edges의 집합 E로 구성되어 있다.
vertices의 수는 |V|, edges의 수는 |E|라고 표시한다.
Path
edge들로 연결된 vertice들의 배열을 말한다.
예를 들어 위의 graph에서 0,4,1,3,2,4는 path이다.
path 중에서도 path에 있는 모든 vertice들이 서로 다르다면 그 path는 simple하다고 한다.
예를 들어 0,4,1,3,2는 simple path이다.
Cycle
길이가 3이상인 path가 한 vertice에서 나와 자기 자신에게 연결된 것을 cycle이라고 한다.
예를 들어 위의 graph에서 1,3,2,4,1,3,2,4,1은 cycle이다.
cycle중에서 첫 vertex와 마지막 vertex를 제외하고 path에 있는 모든 vertice들이 서로 다르다면 그 cycle은 simple하다고 한다.
ex) 1,3,2,4,1
Connected Components
undirected graph의 경우 어떠한 vertex에서 다른 vertex로 가는 path가 최소 1개 존재한다면 connected 되었다고 한다.
어떤 undirected graph에서 subgraph 중 가장 큰 connected subgraph를 connected components라고 한다.
Representation
Costs
Adjacency Matrix : O(|V|^2) space
Adjacency List : O(|V| + |E|) space
|E|의 maximum size는 O(|V|^2)이다.
따라서 |E| << |V|^2일때는 Adjacency List가 효율적이지만 비슷할 때는 Adjancey Matrix가 효율적이다.
'CS 공부 > 자료구조' 카테고리의 다른 글
Graphs(3) - Dijkstra's algorithm (0) | 2020.05.02 |
---|---|
Graphs(2) (0) | 2020.04.27 |
Hashing(2) (0) | 2020.04.22 |
Hashing(1) (0) | 2020.04.21 |
Heuristics (0) | 2020.04.21 |