๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
Daily/Today I Learned

210121_TIL (์ž๋ฃŒ๊ตฌ์กฐ - ํŠธ๋ฆฌ, ์ด์ง„๊ฒ€์ƒ‰ํŠธ๋ฆฌ)

by joooing 2021. 1. 22.
๋ฐ˜์‘ํ˜•

๐ŸŽ ์˜ค๋Š˜ ํ•œ ์ผ


โœ”๏ธ Graph, Tree, Binary Search Tree ๋ฉ”์„œ๋“œ ์ž‘์„ฑํ•ด๋ณด๊ธฐ
์˜ค๋Š˜๋„ ํŽ˜์–ด๋ถ„๊ณผ Graph, Tree, Binary Search Tree ์ž๋ฃŒ๊ตฌ์กฐ๋“ค์˜ ๋ฉ”์„œ๋“œ๋“ค์„ ์ฝ”๋“œ๋กœ ์ž‘์„ฑํ•ด๋ดค๋‹ค. ์„ธ ๊ฐ€์ง€ ๊ตฌ์กฐ ๋ชจ๋‘ ๊ธฐ๋ณธ์ ์œผ๋กœ ๋…ธ๋“œ(node)๋ผ๊ณ  ํ•˜๋Š” ์š”์†Œ๋“ค๊ณผ ๋…ธ๋“œ์™€ ๋…ธ๋“œ๋ฅผ ์—ฐ๊ฒฐํ•˜๋Š” ๊ฐ„์„ (edge)์œผ๋กœ ๊ตฌ์„ฑ๋˜๊ธฐ ๋•Œ๋ฌธ์— ๋น„์Šทํ•œ ๋Š๋‚Œ์ด ์žˆ์—ˆ๋‹ค. ๊ทธ๋ž˜ํ”„ ์ž๋ฃŒ๊ตฌ์กฐ๋Š” ๋ฐฉํ–ฅ์„ฑ์ด ์กด์žฌํ•˜์ง€ ์•Š๋Š” ๋ฌด๋ฐฉํ–ฅ ๊ทธ๋ž˜ํ”„๋ฅผ ๊ธฐ์ค€์œผ๋กœ ํ•ด์„œ ๋น„๊ต์  ์‰ฝ๊ฒŒ ํ•ด๊ฒฐํ–ˆ๋˜ ๊ฒƒ ๊ฐ™์€๋ฐ, ์ด์ง„ ๊ฒ€์ƒ‰ ํŠธ๋ฆฌ๋Š” ์ˆœ์„œ๋‚˜ ๋ฐฉํ–ฅ์ด ์ •ํ•ด์ ธ ์žˆ์–ด์„œ ๊ฐ€์žฅ ์‹œ๊ฐ„์ด ๋งŽ์ด ๊ฑธ๋ ธ๋‹ค. ๊ทธ๋ž˜๋„ ๋ฌด์—‡๋ณด๋‹ค ๊ตฌ์กฐ์ƒ ์žฌ๊ท€๋ฅผ ์‚ฌ์šฉํ–ˆ์–ด์•ผ ํ–ˆ๋Š”๋ฐ, ์žฌ๊ท€๊ฐ€ ์‹คํ–‰๋˜๋Š” ๋ชจ์Šต์ด ์กฐ๊ธˆ์”ฉ ๋จธ๋ฆฌ์†์— ์ƒ์ƒ์ด ๋˜๊ธฐ ์‹œ์ž‘ํ–ˆ๋‹ค๋Š”๊ฒŒ ์ œ์ผ ๊ธฐ๋ปค๋‹ค..ใ… ใ…  

โœ”๏ธ ์ž๋ฃŒ๊ตฌ์กฐ ๋ธ”๋กœ๊น…
์–ด์ œ ๊ณต๋ถ€ํ–ˆ๋˜ ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ๋ถ€ํ„ฐ ํ•ด์‹œ ํ…Œ์ด๋ธ”, ๊ทธ๋ฆฌ๊ณ  ์˜ค๋Š˜ ๋ฐฐ์šด ๊ทธ๋ž˜ํ”„, ํŠธ๋ฆฌ, ์ด์ง„ ํŠธ๋ฆฌ์™€ ๊ด€๋ จ๋œ ๊ฐœ๋…๋“ค์„ ์ •๋ฆฌํ•˜๊ณ  ๋ธ”๋กœ๊น…๊นŒ์ง€ ๋งˆ์ณค๋‹ค. ์‚ฌ์‹ค ์ž๋ฃŒ๊ตฌ์กฐ๋ฅผ ํ‰์†Œ์— ๊ทธ๋ ‡๊ฒŒ ๋งŽ์ด ์“ธ ์ผ์ด ์—†์„ ๊ฒƒ ๊ฐ™์•„์„œ ์žŠ๊ธฐ ์ „์— ๊ผญ ์ •๋ฆฌํ•ด๋‘ฌ์•ผ ํ•  ๊ฒƒ ๊ฐ™์•˜๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ด๋ ‡๊ฒŒ ์ •๋ฆฌํ•˜๋ฉด์„œ ๋Š๋‚€์ ์€ ๊ฐ ์ž๋ฃŒ๊ตฌ์กฐ์˜ ์ฐจ์ด์ ๊ณผ ์‹œ๊ฐ„๋ณต์žก๋„๋ฅผ ์ œ๋Œ€๋กœ ์•Œ๊ณ ์žˆ์–ด์•ผ๊ฒ ๋‹ค๋Š” ๊ฒƒ์ด์—ˆ๋‹ค. + ์–ด๋””์„œ ์‹ค์ œ๋กœ ์‚ฌ์šฉ๋˜๊ณ  ์žˆ๋Š”์ง€.. ์ด ๋ถ€๋ถ„์— ๋Œ€ํ•ด์„œ๋Š” ๋‚ด์ผ ์‹œ๊ฐ„๋ณต์žก๋„์— ๋Œ€ํ•ด ์ข€ ๋” ๊ณต๋ถ€ํ•˜๊ณ  ์ •ํ™•ํ•œ ๋‚ด์šฉ์„ ์ถ”๊ฐ€ํ•ด๋‘์–ด์•ผ๊ฒ ๋‹ค.

 

 

๐ŸŽ ๊ธฐ์–ตํ•  ๊ฒƒ


โœ”๏ธ hasOwnProperty : ๊ฐ์ฒด์˜ ์†์„ฑ์„ ํ™•์ธํ•˜๋Š” ๋ฉ”์„œ๋“œ
โœ”๏ธ ํŠธ๋ฆฌ ์ˆœํšŒ ๋ฐฉ์‹
์ „์œ„ ์ˆœํšŒ(Preorder Traversal): ๋ถ€๋ชจ → ์ขŒ → ์šฐ
์ค‘์œ„ ์ˆœํšŒ(Inorder Traversal): ์ขŒ → ๋ถ€๋ชจ → ์šฐ
ํ›„์œ„ ์ˆœํšŒ(Postorder Traversal): ์ขŒ → ์šฐ → ๋ถ€๋ชจ

โœ”๏ธ ๊ทธ๋ž˜ํ”„ vs ํŠธ๋ฆฌ
๊ทธ๋ž˜ํ”„(Graph) : ์ •์˜ ๋…ธ๋“œ๊ฐ„ ๊ด€๊ณ„๋ฅผ ๊ฐ„์„ ์œผ๋กœ ์—ฐ๊ฒฐํ•œ ์ž๋ฃŒ๊ตฌ์กฐ(๋„คํŠธ์›Œํฌ ๋ชจ๋ธ) 
ํŠธ๋ฆฌ(Tree) : ๋…ธ๋“œ๋“ค์„ ๊ฐ„์„ ์œผ๋กœ ์—ฐ๊ฒฐํ•œ ๊ณ„์ธตํ˜• ์ž๋ฃŒ๊ตฌ์กฐ(๊ณ„์ธต ๋ชจ๋ธ)

โœ”๏ธ ์ธ์ ‘ ๋ฆฌ์ŠคํŠธ vs ์ธ์ ‘ ํ–‰๋ ฌ
์ธ์ ‘ ๋ฆฌ์ŠคํŠธ :  ๊ฐ„์„ ์ด ์ ์„ ๋•Œ ์ฃผ๋กœ ์‚ฌ์šฉ! 
์ธ์ ‘ ๋ฐฐ์—ด :  ๊ฐ„์„ ์ด ๋งŽ์„ ๋•Œ ์ฃผ๋กœ ์‚ฌ์šฉ! 

 

 

๐ŸŽ ๋” ๊ณต๋ถ€ํ•  ๊ฒƒ


โœ”๏ธ ์ž๋ฃŒ๊ตฌ์กฐ๋ณ„ ์‹œ๊ฐ„ ๋ณต์žก๋„
โœ”๏ธ ์ž๋ฃŒ๊ตฌ์กฐ๋ณ„ ์‹ค์ œ ์‚ฌ์šฉ ์‚ฌ๋ก€
๋ฐ˜์‘ํ˜•

๋Œ“๊ธ€