DFS(Depth-First Search) κΉμ΄ μ°μ νμ
level order traversal (BFS)
inorder traversal (DFS)
pre-order traversal (DFS)
post-order traversal (DFS)
1. μΆλ°μ sμμ μμνλ€.
2. νμ¬ λ Έλλ₯Ό visitedλ‘ markνκ³ , μΈμ ν λ Έλλ€ μ€ unvisited λ Έλκ° μ‘΄μ¬νλ©΄ κ·Έ λ Έλλ‘ κ°λ€.
3. 2λ²μ κ³μ λ°λ³΅νλ€.
4. λ§μ½ unvisitedμΈ μ΄μλ Έλκ° μ‘΄μ¬νμ§ μλ λμ κ³μν΄μ μ§μ λ Έλλ‘ λλμ κ°λ€.
5. λ€μ 2λ²μ λ°λ³΅νλ€.
6. μμλ Έλ sλ‘ λμμ€κ³ , λμ΄μ κ° κ³³μ΄ μμΌλ©΄ μ’ λ£νλ€.
μ΄ κ·Έλνμμλ 1-3-7-8-7-3-5-2-4-2-5-6 μμλ‘ κ°λ€.. (νμ§λ§ μμλ λ°λ μ μλ€)
(s=1μμ 3μ΄ μλ 2λ₯Ό λ¨Όμ λ°©λ¬Έν μλ μλ€.)
// κ°μ₯ 첫 νΈμΆμ DFS(G, s)κ° λ κ²μ΄λ€.
DFS (G, v)
visited[v] <- YES; // λ°©λ¬Έλ λ
Έλλ₯Ό yesλ‘ νκΈ°νλ€.
for each node x adjacent to v do // node vμ μΈμ ν λ
Έλ xμ λν΄μ λ°λ³΅ κ²μ¬λ₯Ό νλ€..
if visited[x] = NO then // visited[x]κ° λ°©λ¬Έλμ§ μμ λ
ΈλλΌλ©΄,
DFS(G, x); // DFS ν¨μ νΈμΆμ λ°λ³΅νλ€.
end.
end.
* κ·Έλνκ° disconnected μ΄κ±°λ νΉμ λ°©ν₯κ·ΈλνλΌλ©΄, DFSμ μν΄μ λͺ¨λ λ Έλκ° λ°©λ¬Έλμ§ μμ μ μμ
μκ°λ³΅μ‘λ : O(n+m)
κ³΅λΆ μλ£
'μκ³ λ¦¬μ¦' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
15-1κ°. μ΅μλΉμ©μ μ₯νΈλ¦¬(Minimum spanning tree) (0) | 2020.12.11 |
---|---|
14-4κ°. DAGμ μμμμ (0) | 2020.12.08 |
14-1κ°. κ·Έλν(Graph) κ°λ κ³Ό νν (0) | 2020.12.01 |
13-3. ν΄μ 3 (0) | 2020.11.29 |
13-1κ°. ν΄μ(Hashing) 1 (0) | 2020.11.24 |
λκΈ