Graph

:๊ฐ€์žฅ ๋ณต์žกํ•œ(์ผ๋ฐ˜์ ์ธ) ์ž๋ฃŒ๊ตฌ์กฐ

  • G=(V,E) v=vertex(์ •์ ) set, E= edge(์—์ง€) set

  • degree(๋ถ„์ง€์ˆ˜): ์–ด๋–ค ๋…ธ๋“œ์— ์—ฐ๊ฒฐ๋œ ์—์ง€ ์ˆ˜

  • ์ธ์ ‘์„ฑ

โ€‹ (1) adjacent: ์—์ง€(u, v)๊ฐ€ ์กด์žฌํ•  ๋•Œ u, v๋Š” ์ธ์ ‘(adjacent)

โ€‹ (2) incident: ์—์ง€ e=(u, v)์— ๋Œ€ํ•ด, e๋Š” u์™€ v์— ์ธ์ ‘(incident)

  • ๊ฒฝ๋กœ(path)

โ€‹ (1)๋‹จ์ˆœ ๊ฒฝ๋กœ

โ€‹ (2)๊ฒฝ๋กœ์˜ ๊ธธ์ด

  • ์‚ฌ์ดํด

โ€‹ (1) ํŠธ๋ฆฌ : ์‚ฌ์ดํด์ด ์—†๋Š” ์—ฐ๊ฒฐ ๊ทธ๋ž˜ํ”„ (๋‘ ๋…ธ๋“œ๋ฅผ ์—ฐ๊ฒฐํ•˜๋Š” ๊ฒฝ๋กœ๊ฐ€ ๋ฌด์กฐ๊ฑด 1๊ฐœ)

โ€‹ (2) ํฌ๋ฆฌ์ŠคํŠธ: ์—ฐ๊ฒฐ ํŠธ๋ฆฌ์˜ ์ง‘ํ•ฉ

  • ๋ฐฉํ–ฅ๊ทธ๋ž˜ํ”„/๋ฌด๋ฐฉํ–ฅ๊ทธ๋ž˜ํ”„

image

ํ‘œํ˜„๋ฒ•

  1. ์ธ์ ‘ํ–‰๋ ฌ(adjacency matrix): (๊ฐ€์ค‘์น˜๋ฅผ ์ง์ ‘ ์ ์Œ) ๋Œ€๊ฐ์„ ์€ 0์ด๋‚˜ 1๋กœ ํ†ต์ผ =>๋ฉ”๋ชจ๋ฆฌ ๋‚ญ๋น„

โ€‹ => 2์ฐจ์› ํ–‰๋ ฌ(๋ฐฐ์—ด)๋กœ

  1. ์ธ์ ‘๋ฆฌ์ŠคํŠธ(adjacency list): ์—์ง€๋งŒ ํ‘œํ˜„ํ•˜๋Š” ๊ฒƒ =>์ธ์ ‘ํ–‰๋ ฌ ๋ณด์™„

โ€‹ =>1์ฐจ์› ๋ฐฐ์—ด๋“ค๋กœ

image

๊ธฐ๋ณธ์—ฐ์‚ฐ์‹œ๊ฐ„

image

Sparse(์—์ง€์ˆ˜<๋…ธ๋“œ์ˆ˜)  dense(์—์ง€์ˆ˜>๋…ธ๋“œ์ˆ˜) โ€‹							

๊ทธ๋ž˜ํ”„ ์ˆœํšŒ

1. DFS(Depth First Search)

โ€‹ : ๊ธธ์ด์šฐ์„ ํƒ์ƒ‰

=> ํ˜„์žฌ ๋ฐฉ๋ฌธ ๋…ธ๋“œ์—์„œ ๋ฐฉ๋ฌธํ•˜์ง€ ์•Š๋Š” ์ด์›ƒ ๋…ธ๋“œ๋ฅผ ๋ฐฉ๋ฌธ & backtrack์œผ๋กœ ๋‹ค์‹œ ์•ˆ ๊ฐ€๋ณธ๊ณณ ๋ฐฉ๋ฌธ

=> ๊ทธ ๊ณผ์ •์„ ํ†ตํ•ด ๋งŒ๋“ค์–ด์ง„ ํŠธ๋ฆฌ๊ฐ€ DFS ํŠธ๋ฆฌ

image

imageimage

image

โ€‹ [๋น„์žฌ๊ท€์ ]

image

โ€‹ backdege ์กด์žฌ=์‚ฌ์ดํด ์กด์žฌ

image

  1. DAG(Directed Acyclic Graph)

image

โ€‹ -> ์‚ฌ์ดํด์ด ์—†๋Š” ๋ฐฉํ–ฅ ๊ทธ๋ž˜ํ”„

image

Post๊ฐ€ ๊ฐ€์žฅ ๋Šฆ๊ฒŒ ๋๋‚˜๋Š”( ๋‹ค ๋ฐ›์•„์•ผํ•˜๋Š”) ๊ฒƒ์ด ์ œ์ผ ๋‚˜์ค‘์œผ๋กœ (post time์ด ๊ฐ€์žฅ ์ž‘์€ ๊ฒƒ!)

โ€‹ => Post ์—ญ์ˆœ์œผ๋กœ(ํฐ ๊ฒƒ๋ถ€ํ„ฐ ๋‚˜์—ด)!

โ€‹ Ex) A, C, B, F, H, D, I, G

  1. BFS( ๋„ˆ๋น„์šฐ์„ )

โ€‹ => ๊ฐ™์€ ๋ ˆ๋ฒจ๊ธฐ์ค€์œผ๋กœ ์•ˆ ๊ฐ€๋ณธ ๊ณณ ๊ฐ€๊ธฐ