Graph
- G = (V, E)
- V = Vertex ( Node라고 하기도 함, 정점들의 집합) / E = Edge (간선들의 집합, 정점들을 잇는 선들의 집합)
- 정점: 대상 / 간선: 정점(대상)들의 관계
- '인접하다'의 의미

Graph의 종류
- 기본적인 그래프: 방향, 가중치 X
- 가중 그래프: 방향 X, 가중치 O
- 방향 그래프: 방향 O, 가중치 X
- 가중성 방향 그래프 : 방향 O, 가중치 X
(쉬우니까 그림 생략)
Adjacency Matrix, Adjacency List (인접 행렬, 인접 리스트)
- n * n 행렬로 표시됨 (n: number of vertex)
Adjacency Matrix
더보기








출처: 학교 강의 자료
Adjacency Array
더보기






출처: 학교 강의 자료
Graph Traversal
- 임의의 한 정점에서 시작하여 그래프 내의 모든 정점을 방문하는 것
- 대표적인 알고리즘들 - DFS (Depth-First Search), BFS(Breadth-First Search)

BFS
- 너비 우선 탐색
- Queue를 이용
BFS Algorithm

DFS
- 깊이 우선 탐색
- Recursion, Stack을 이용
- Backtracking을 이용한 Algorithm이다.
DFS Algorithm


Difference between DFS and BFS
- DFS는 최단 경로를 보장하지 않으므로, 최단 경로를 찾는 것에 적합하지 않다. -> 즉, Optimal Solution이 아니다.
- BFS는 최단 경로를 보장한다. -> 즉, Optimal Solution이다. (해를 찾으면 그 해가 최적의 해가 된다)
'Python > 자료구조, 알고리즘' 카테고리의 다른 글
| 자료구조, 알고리즘) Graph - Spanning Tree, MST, Kruskal, Prim (3) | 2024.05.22 |
|---|---|
| 자료구조, 알고리즘) Sorting - Shellsort, Mergesort, Heapsort, Radixsort (1) | 2024.05.17 |
| 자료구조, 알고리즘) Sorting - Bubblesort, Selectionsort, Insertionsort, Quicksort + Partition (1) | 2023.12.10 |
| 자료구조) Binary Search Tree (6) | 2023.12.05 |
| 자료구조) Binary Tree (4) | 2023.11.28 |