๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
  • ์žฅ์›์ต ๊ธฐ์ˆ ๋ธ”๋กœ๊ทธ
๐Ÿ’ป Computer Science/- Data Structure, Algorithm

[์ž๋ฃŒ ๊ตฌ์กฐ] - ํŠธ๋ฆฌ ์ž๋ฃŒ ๊ตฌ์กฐ(2)-ํŠธ๋ฆฌ์˜ ๋„ˆ๋น„ ์šฐ์„  ํƒ์ƒ‰(BFS)๊ณผ ๊นŠ์ด ์šฐ์„  ํƒ์ƒ‰(DFS) :: Tree-Search (Breadth-First Search, Depth-First Search)

by Wonit 2020. 6. 18.

์ง€๋‚œ ์‹œ๊ฐ„์— ์šฐ๋ฆฌ๋Š” ํŠธ๋ฆฌ์— ๋Œ€ํ•œ ๊ธฐ๋ณธ ๊ฐœ๋…๊ณผ ์šฉ์–ด์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด์•˜์œผ๋‹ˆ ์ด์ œ ํŠธ๋ฆฌ๋ฅผ ํŒŒ๊ณ ๋“ค ์ค€๋น„๊ฐ€ ๋˜์—ˆ๋‹ค.


์›๋ž˜ BFS์™€ DFS๋Š” ๊ทธ๋ž˜ํ”„ ์ž๋ฃŒ๊ตฌ์กฐ์ฏค ๊ฐ€์„œ์•ผ ๊ตฌํ˜„๋„ ํ• ๋งŒํ•˜๊ณ  ์žฌ๋ฐŒ์ง€๋งŒ ๋ง‰์ƒ ๊ฐ€์„œ ํ•˜๋ ค๋ฉด ์–ด๋ ค์šธ ์ˆ˜ ์žˆ์œผ๋‹ˆ ์ด๋ฒˆ ์‹œ๊ฐ„์—๋Š” ๊ฐ€๋ณ๊ฒŒ ์ฝ์–ด๋ณด๊ณ  ์ด๋Ÿฐ๊ฒŒ ์žˆ๊ตฌ๋‚˜ ํ•˜๊ณ  ๋„˜์–ด๊ฐ€๋Š” ์‹œ๊ฐ„์ด ๋˜์—ˆ์œผ๋ฉด ์ข‹๊ฒ ๋‹ค.

ํŠธ๋ฆฌ์˜ ํƒ์ƒ‰

ํŠธ๋ฆฌ์˜ ํƒ์ƒ‰์—๋Š” ๋‘ ๊ฐ€์ง€ ๋ฐฉ๋ฒ•์ด ์žˆ๋‹ค.

  1. ๋„ˆ๋น„ ์šฐ์„  ํƒ์ƒ‰
  2. ๊นŠ์ด ์šฐ์„  ํƒ์ƒ‰

์ถœ์ฒ˜ : https://seing.tistory.com/29

BFS::๋„ˆ๋น„ ์šฐ์„  ํƒ์ƒ‰

๋„ˆ๋น„ ์šฐ์„  ํƒ์ƒ‰์€ ๊ฐ€์žฅ ๋‚ฎ์€ ๋ ˆ๋ฒจ์—์„œ ์‹œ์ž‘ํžˆ์„œ ์™ผ์ชฝ์—์„œ ์˜ค๋ฅธ์ชฝ ๋ฐฉํ–ฅ์„ ๊ฒ€์ƒ‰ํ•˜๊ณ  ํ•œ ๋ ˆ๋ฒจ์—์„œ ๊ฒ€์ƒ‰์ด ๋๋‚˜๋ฉด ๋‹ค์Œ ๋ ˆ๋ฒจ๋กœ ๋‚ด๋ ค๊ฐ€๋Š” ๋ฐฉ์‹์œผ ๊ฒ€์ƒ‰ ๊ตฌ์กฐ์ด๋‹ค.

 

๋„ˆ๋น„ ์šฐ์„  ํƒ์ƒ‰์€ ๊ฐ€๊นŒ์šด ์ •์ ์„ ๋จผ์ € ๋ฐฉ๋ฌธ ํ•˜๊ณ  ๋ฉ€๋ฆฌ ์žˆ๋Š” ์ •์ ์„ ๋‚˜์ค‘์— ๋ฐฉ๋ฌธํ•œ๋‹ค๋Š” ์ ์—์„œ ํŠน์ • ์ •์ ๊ณผ์˜ ๊ด€๊ณ„๊ฐ€ ์ค‘์š”ํ•œ ํƒ์ƒ‰ ๋ฐฉ๋ฒ•์ด๋‹ค.

 

์˜ˆ๋ฅผ ๋“ค์–ด ์ „ ์„ธ๊ณ„์˜ ๋„์‹œ ์ด๋ฆ„์„ ๊ฒ€์ƒ‰ํ•œ๋‹ค๊ณ  ํ•˜๋ฉด, ๋„์‹œ A์™€ B ๋Š” ๊ฐ™์€ ์ฐจ์ˆ˜์— ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋„์‹œ A์— ์žˆ๋Š” ๋ชจ๋“  ๋™๊ณผ ๋งˆ์„์„ ๋ชจ๋‘ ์กฐ์‚ฌํ•˜๋Š” DFS๋ณด๋‹ค ๋น ๋ฅธ ํƒ์ƒ‰์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

DFS::๊นŠ์ด ์šฐ์„  ํƒ์ƒ‰

๊นŠ์ด ์šฐ์„  ํƒ์ƒ‰์€ ๋ฆฌํ”„๊นŒ์ง€ ๋‚ด๋ ค๊ฐ€๋ฉด์„œ ๊ฒ€์ƒ‰ํ•˜๋Š” ๊ฒƒ์„ ์šฐ์„ ์ˆœ์œ„๋กœ ํ•˜๋Š” ํƒ์ƒ‰ ๋ฐฉ๋ฒ•์ด๋‹ค.

 

๋ฆฌํ”„์— ๋„๋‹ฌํ•ด์„œ ๋” ์ด์ƒ ๊ฒ€์ƒ‰์„ ์ง„ํ–‰ํ•  ๊ณณ์ด ์—†์œผ๋ฉด ๋ถ€๋ชจ์—๊ฒŒ ๋Œ์•„๊ฐ€๊ณ  ๋‹ค์‹œ ์ž์‹ ๋…ธ๋“œ๋กœ ๋‚ด๋ ค๊ฐ„๋‹ค.

 

๊นŠ์ด ์šฐ์„  ํƒ์ƒ‰์—์„œ๋Š” ์–ธ์ œ ๋…ธ๋“œ๋ฅผ ๋ฐฉ๋ฌธํ• ์ง€์— ๋”ฐ๋ผ์„œ 3๊ฐ€์ง€ ์ข…๋ฅ˜๋กœ ๋‚˜๋‰œ๋‹ค.

Tree Traversals (ํŠธ๋ฆฌ ์ˆœํšŒ)

ํŠธ๋ฆฌ ์ˆœํšŒ ๋ฐฉ๋ฒ•์€ ์œ„์—์„œ ๋ง ํ–ˆ๋˜ ๊ฒƒ ์ฒ˜๋Ÿผ ์–ธ์ œ ๋…ธ๋“œ๋ฅผ ๋ฐฉ๋ฌธํ• ์ง€๋ฅผ ์ •ํ•˜๋Š” ๊ฐœ๋…์ด๋‹ค. ํฌ๊ฒŒ

  1. ์ „์œ„ ์ˆœํšŒ - PreOrder
  2. ์ค‘์œ„ ์ˆœํšŒ - InOrder
  3. ํ›„์œ„ ์ˆœํšŒ - PostOrder


 

๋Œ“๊ธ€