DFS(Depth-First Search) : 깊이 우선 탐색. 그래프의 깊은 부분을 우선적으로 탐색하는 알고리즘.
스택 자료구조를 사용하여 가장 깊은 노드를 방문 후 다시 돌아가 다른 경로를 탐색.
-그래프 : 노드와 간선으로 이루어진 데이터의 형태. 인접 행렬과 인접 리스트로 표현할 수 있다.
adj[i][j] : 노드 i에서 노드j 로 가는 간선이 있으면 1, 없으면 0
adj[i][j] : 노드 i에서 노드 j로 가는 간선의 가중치의 값, 없으면 무한
모든 관계를 저장하기 때문에 노드 개수가 많을수록 메모리가 낭비됨.
graph[i].append((연결된노드, 거리))
graph[i].append((연결된노드2, 거리))
인접 행렬 방식에 비해 특정 노드의 관계에 대한 정보를 얻는 속도가 느림.
BFS (Breadth First Search) : 너비 우선 탐색. 그래프의 가까운 노드부터 탐색하는 알고리즘.
큐(선입선출) 자료구조를 사용하여 가까운 노드부터 탐색.