DFS(u, adj)
{
u.visited = true;
for each v : adj[u]
{
if (v.visited == false)
DFS(v, adj);
}
}
DFS(u, adj)
{
if (u.visited) return;
u.visited = true;
for each v : adj[u]
{
DFS(v, adj);
}
}
BFS(G, u)
{
u.visited = 1; // 중요
q.push(u);
while(q.size())
{
u = q.front;
for each v : adj[u]
{
if (v.visited == false)
{
v.visited = u.visited + 1; // 최단거리
q.push(v);
}
}
}
}
시간 복잡도 : 동일
💡[TIP]
탐색한다 -> DFS
최단거리 -> BFS
소중한 정보 감사드립니다!