ํฐ์คํ ๋ฆฌ ๋ทฐ
๐ง๐ป๐ป ์๊ณ ๋ฆฌ์ฆ/๊ทธ๋ํ
[๊ทธ๋ํ]DFS ๊ตฌํ ๋ฐฉ๋ฒ์ ์์๋ณด์
10000COW 2022. 10. 23. 17:45728x90
1) ์ฌ๊ท๋ฅผ ์ด์ฉํ DFS ๊ตฌํ Pseudo code
G๋ ๊ทธ๋ํ, v๋ ์ ์ (vertex)์ผ ๋,
DFS(G,v)
lable v as discovered
for all directed edges from v to w that are in G.adjacentEdges(v) do
if vertex w is not labeled as discovered then
recursively call DFS(G,w)
์ฌ๊ท๋ฅผ ์ด์ฉํ DFS ๊ตฌํ Python code
def recursive_dfs(v, discovered=[]):
discovered.append(v)
for w in graph[v]:
if w not in discovered:
discovered = recusrive_dfs(w, discovered)
return discovered
2) ์คํ์ ์ด์ฉํ ๋ฐ๋ณต ๊ตฌ์กฐ๋ก DFS ๊ตฌํ Pseudo code
DFS-iterative(G, v)
let S be a stack
S.push(v)
While S is not empty do
v = S.pop()
if v is not labeled as discovered then
label v as discovered
for all edges from v to w in G.adjacentEdges(v) do
S.push(w)
์คํ์ ์ด์ฉํ ๋ฐ๋ณต ๊ตฌ์กฐ๋ก DFS ๊ตฌํ Python code
def iterative_dfs(graph, start_v):
visited = []
stack = [start_v]
while stack:
v = stack.pop()
if v not in visited:
visited.append(v)
for w in graph[v]:
stack.append(w)
return visited
728x90
'๐ง๐ปโ๐ป ์๊ณ ๋ฆฌ์ฆ > ๊ทธ๋ํ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๊ณต์ง์ฌํญ
์ต๊ทผ์ ์ฌ๋ผ์จ ๊ธ
์ต๊ทผ์ ๋ฌ๋ฆฐ ๋๊ธ
- Total
- Today
- Yesterday
๋งํฌ
TAG
- Python
- github
- Context API
- ์๋ฌ
- JavaScript
- mdn
- error
- ํจ์
- DB
- ์๊ณ ๋ฆฌ์ฆ
- useState
- leetcode
- zustand
- ์ ๋ ฌ
- ๋ฐ์ดํฐ๋ฒ ์ด์ค
- Browser
- ํ์ด์ฌ
- ๊ทธ๋ํ
- CSS
- ์๋ฐ์คํฌ๋ฆฝํธ
- state
- ์๋ฃ๊ตฌ์กฐ
- Component
- git
- ๋ธ๋ผ์ฐ์
- DOM
- ๋ฆฌ์กํธ
- BOJ
- react
- React Query
์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
๊ธ ๋ณด๊ดํจ
250x250