Post

๐Ÿข 4. Trees and Graphs

๐Ÿซง ํŠธ๋ฆฌ

: ํ•˜๋‚˜์˜ ๋ฃจํŠธ ์ฝ”๋“œ๋ฅผ ๊ฐ€์ง„๋‹ค

๋ฃจํŠธ ๋…ธ๋“œ๋Š” 0๊ฐœ ์ด์ƒ์˜ ์ž์‹ ๋…ธ๋“œ๋ฅผ ๊ฐ–๊ณ  ์žˆ๋‹ค

ํŠธ๋ฆฌ์—๋Š” ์‚ฌ์ดํด ์กด์žฌํ•  ์ˆ˜ ์—†๋‹ค

๋…ธ๋“œ๋“ค์€ ํŠน์ • ์ˆœ์„œ๋กœ ๋‚˜์—ด๋  ์ˆ˜๋„ ์žˆ๊ณ  ๊ทธ๋Ÿด ์ˆ˜ ์—†์„ ์ˆ˜๋„ ์žˆ๋‹ค

๊ฐ ๋…ธ๋“œ๋Š” ์–ด๋–ค ์ž๋ฃŒํ˜•์œผ๋กœ๋„ ํ‘œํ˜„์ด ๊ฐ€๋Šฅํ•˜๋‹ค

๋…ธ๋“œ(node)ํŠธ๋ฆฌ์˜ ๊ตฌ์„ฑ์š”์†Œ์— ํ•ด๋‹นํ•˜๋Š” A, B, C, D, E, F์™€ ๊ฐ™์€ ์š”์†Œ
๊ฐ„์„ (edge)๋…ธ๋“œ์™€ ๋…ธ๋“œ๋ฅผ ์—ฐ๊ฒฐํ•˜๋Š” ์—ฐ๊ฒฐ์„ 
๋ฃจํŠธ ๋…ธ๋“œ(root node)ํŠธ๋ฆฌ ๊ตฌ์กฐ์—์„œ ์ตœ์ƒ์œ„์— ์กด์žฌํ•˜๋Š” A์™€ ๊ฐ™์€ ๋…ธ๋“œ
๋‹จ๋ง ๋…ธ๋“œ(terminal node, leaf node)์•„๋ž˜๋กœ ๋˜ ๋‹ค๋ฅธ ๋…ธ๋“œ๊ฐ€ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ์ง€ ์•Š์€ E, F, C, D์™€ ๊ฐ™์€ ๋…ธ๋“œ
๋‚ด๋ถ€ ๋…ธ๋“œ(internal node),๋น„ ๋‹จ๋ง ๋…ธ๋“œ(non-terminal node)๋‹จ๋ง ๋…ธ๋“œ๋ฅผ ์ œ์™ธํ•œ ๋ชจ๋“  ๋…ธ๋“œ๋กœ A, B์™€ ๊ฐ™์€ ๋…ธ๋“œ
๋””๊ทธ๋ฆฌ(degree,์ฐจ์ˆ˜)๊ฐ ๋…ธ๋“œ์—์„œ ๋ป—์–ด๋‚˜์˜จ ๊ฐ€์ง€์˜ ์ˆ˜ A=3, B=2
ํŠธ๋ฆฌ์˜ ๋””๊ทธ๋ฆฌ๋…ธ๋“œ๋“ค์˜ ๋””๊ทธ๋ฆฌ ์ค‘์—์„œ ๊ฐ€์žฅ ๋งŽ์€ ์ˆ˜ A๊ฐ€ 3๊ฐœ์˜ ๋””๊ทธ๋ฆฌ๋ฅผ ๊ฐ€์ง€๊ธฐ ๋•Œ๋ฌธ์— ํŠธ๋ฆฌ์˜ ๋””๊ทธ๋ฆฌ๋Š” 3์ด๋‹ค.
๋ถ€๋ชจ ๋…ธ๋“œ(parent node)์–ด๋–ค ๋…ธ๋“œ์— ์—ฐ๊ฒฐ๋œ ์ด์ „ ๋ ˆ๋ฒจ์˜ ๋…ธ๋“œ E,F์˜ ๋ถ€๋ชจ๋…ธ๋“œ๋Š” B
ํ˜•์ œ ๋…ธ๋“œ(brother node)๋™์ผํ•œ ๋ถ€๋ชจ๋ฅผ ๊ฐ–๋Š” ๋…ธ๋“œ๋“ค E์˜ ํ˜•์ œ๋…ธ๋“œ๋Š” F

16.png

๋ ˆ๋ฒจ(level),๊นŠ์ดํŠธ๋ฆฌ์—์„œ์˜ ๊ฐ ์ธต๋ณ„๋กœ ์ˆซ์ž๋กœ ๋งค๊ฒจ์„œ ์ด๋ฅผ ํŠธ๋ฆฌ์˜ โ€˜๋ ˆ๋ฒจโ€™์ด๋ผ ํ•œ๋‹ค. ์ด ํŠธ๋ฆฌ์˜ ๋ ˆ๋ฒจ(๊นŠ์ด)๋Š” 3์ด๋‹ค.
๋†’์ด(height)ํŠธ๋ฆฌ์˜ ์ตœ๊ณ  ๋ ˆ๋ฒจ์„ ๊ฐ€๋ฆฌ์ผœ โ€˜๋†’์ดโ€™๋ผ ํ•œ๋‹ค.

๐Ÿซง BFS ๋…ธํŠธ

  • level order (BFS, ํ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ)
  • ์‹œ๊ฐ„ ๋ณต์žก๋„: O(n)
  • ๊ณต๊ฐ„ ๋ณต์žก๋„: ์ตœ๊ณ : O(1) ์ตœ์•…: O(n/2)=O(n)

๐Ÿซง DFS ๋…ธํŠธ

  • ์‹œ๊ฐ„ ๋ณต์žก๋„: O(n)
  • ๊ณต๊ฐ„ ๋ณต์žก๋„: ์ตœ๊ณ : O(log n) - ํ‰๊ท ์ ์œผ๋กœ, ํŠธ๋ฆฌ์˜ ๋†’์ด์ด๋‹ค. ์ตœ์•…: O(n)
  • ์ค‘์œ„(inorder) (DFS: ์™ผ์ชฝ, ์ž์‹ , ์˜ค๋ฅธ์ชฝ)
  • ํ›„์œ„(postorder) (DFS: ์™ผ์ชฝ, ์˜ค๋ฅธ์ชฝ, ์ž์‹ )
  • ์ „์œ„(preorder) (DFS: ์ž์‹ , ์™ผ์ชฝ, ์˜ค๋ฅธ์ชฝ)
This post is licensed under CC BY 4.0 by the author.