728x90
๐ง ๋ฐฉํฅ์ฑ์ด ์๋ ๊ทธ๋ํ์์์ DFS
๋ฐฉํฅ์ฑ์ด ์๋ ๊ทธ๋ํ(Directed Graph) ์์๋ Undirected Graph์ ๋๊ฐ์ ๋ฐฉ๋ฒ์ผ๋ก DFS๊ฐ ๊ฐ๋ฅํฉ๋๋ค.
๊ทธ๋ฌ๋ Directed Graph์์๋ ๊ฐ์ ์ ๋ฐฉํฅ์ฑ์ด ์์ผ๋ฏ๋ก,
undirected graph์ ๋ฌ๋ฆฌ DFS Tree์์ Tree Edge๊ฐ ์๋ ๋ถ๋ถ๋ค์ ๋ ์ธ๋ถํ ํ ์ ์์ต๋๋ค.
Directed Graph์์ DFS Tree์ ๋ฑ์ฅํ๋ Edge๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
Tree Edge : Undirected Graph์ ๋์ผํฉ๋๋ค. DFS Tree ์์ ํ์๋๋ ๊ฐ์ ์ ์๋ฏธํฉ๋๋ค.
Back Edge $($ $u$, $v$ $)$: $u$ ๋ $v$ ์ descendant
Forward Edge $($ $u$, $v$ $)$ : $u$ ๋ $v$ ์ ancestor
Cross Edge : ๋๋จธ์ง Edge๋ฅผ ์๋ฏธํฉ๋๋ค
๐ง ๋ฐฉํฅ์ฑ์ด ์๋ ๊ทธ๋ํ์์ PreOrder์ PostOrder์ ํน์ง
Directed Graph์ ๊ฐ์ $($ $u$, $v$ $)$ ์ ๋ํ์ฌ, $pre(v)$, $post(v)$, $pre(u)$, $post(u)$๋ ๋ค์ ์ธ๊ฐ์ง ๊ด๊ณ๋ง์ ๊ฐ์ง๋๋ค.
$($ $u$, $v$ $)$ ๊ฐ tree edge ํน์ forward edge์ธ ๊ฒฝ์ฐ
$pre(u)$ $<$ $pre(v)$ $<$ $post(v)$ $<$ $post(u)$
$($ $u$, $v$ $)$ ๊ฐ back edge์ธ ๊ฒฝ์ฐ
$pre(v)$ $<$ $pre(u)$ $<$ $post(u)$ $<$ $post(v)$
$($ $u$,$v$ $)$๊ฐ cross edge์ธ ๊ฒฝ์ฐ
$[pre(u),post(u)]$ $[pre(v), post(v)]$ ๊ฐ disjoint ์ ๋๋ค.
728x90