목차
그래프
- 어떤 자료나 개념을 표현하는 정점(vertex)들의 집합과, 이들을 연결하는 간선(edge)들의 집합으로 구성된 자료구조
- 그래프가 트리보다 넓은 개념. (트리는 계층적 구조)
그래프 종류
- 방향 그래프 vs 무향 그래프
방향 그래프(방향이 존재)
무향 그래프(방향 미존재) - 다중 그래프 vs 단순 그래프
다중 그래프(두 점을 연결하는 간선이 여러 개가 될 수 있음)
단순 그래프(두 점을 연결하는 간선이 한 개) - 가중치 그래프 -> 다익스트라
한 점을 기준으로 간선들의 가중치가 존재
그래프 활용
- 도시들을 연결하는 도로망
- 지하철 연결 노선도
- 컴퓨터 네트워크
- 소셜 네트워크 분석
그래프 표현 방법
인접 행렬
graph = [
[0, 0, 1, 0, 1],
[0, 0, 0, 1, 1],
[1, 0, 0, 0, 1],
[0, 1, 0, 0, 1],
[1, 1, 1, 1, 0],
]
인접 리스트
graph = {
1 : [3, 5],
2 : [4, 5],
3 : [1, 5],
4 : [2, 5],
5 : [1, 2, 3, 4]
}
암시적 그래프
- x,y좌표로 된 맵을 행렬에 옮긴 것
graph = [
[1, 1, 1, 1, 1],
[0, 0, 0, 1, 1],
[1, 1, 0, 1, 1],
[1, 0, 0, 0, 0],
[1, 1, 1, 1, 1],
]
참고자료
'CS > Data Structure & Algorithm' 카테고리의 다른 글
동적 계획법(DP) (1) | 2024.04.19 |
---|---|
그래프 순회 (0) | 2024.04.16 |
트리 순회 (0) | 2024.04.16 |
재귀 & 트리 (0) | 2024.04.16 |
Hash Table & Dictionary (0) | 2024.04.12 |