그래프(Graph)는 실제 세계의 현상이나 사물을 정점(Vertex) 또는 노드(Node)와 간선(Edge)로 표현하기 위해 사용한다.
이해하기 어렵다면, 지하철 노선도라고 생각하면 편하다.
그래프 종류는 다음과 같다.
무방향 그래프(Undirected Graph)
방향이 없고, 간선을 통해 노드는 양방향으로 갈 수 있다.
보통 노드 A, B가 연결되어 있는 경우, (A, B) 또는 (B, A)로 표기한다.
방향 그래프(Directed Graph)
간선에 방향이 있는 그래프이다.
보통 노드 A, B가 A -> B로 가는 간선으로 연결되어 있을 경우, <A, B>로 표기한다.(<B, A>와는 다르다)
가중치 그래프(Weighted Graph)
간선에 비용 또는 가중치가 할당된 그래프
가중치를 각 노드 간의 거리라고 생각하면 편하다.
연결 그래프(Connected Graph)와 비연결 그래프(Disconnected Graph)
- 연결 그래프 : 무방향 그래프에 있는 모든 노드에 대해 항상 경로가 존재하는 경우
- 비연결 그래프 : 무방향 그래프에서 특정 노드에 대해 경로가 존재하지 않는 경우
순환 그래프(Cycle Graph)와 비순환 그래프(Acyclic Graph)
- 순환 그래프 : 단순 경로의 시작 노드와 종료 노드가 동일한 경우
- 비순환 그래프 : 사이클이 없는 그래프
완전 그래프(Complete Graph)
그래프의 모든 노드가 서로 연결되어 있는 그래프이다.
'Develop > Algorithm' 카테고리의 다른 글
바빌로니아 법의 점화식을 이용한 제곱근의 근삿값 찾기 (0) | 2022.10.11 |
---|---|
시간복잡도 (0) | 2022.09.28 |
트리(Tree) 구조 (0) | 2022.09.24 |
스택(Stack)과 큐(Queue) (0) | 2022.09.22 |
재귀 함수와 메모리 사용량 관계 _ 꼬리 재귀 (1) | 2022.09.21 |