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

[์ž๋ฃŒ ๊ตฌ์กฐ] - ํŠธ๋ฆฌ ์ž๋ฃŒ ๊ตฌ์กฐ(1)-๊ธฐ๋ณธ ํŠธ๋ฆฌ ์šฉ์–ด ๋ฐ ๊ฐœ๋… ์ •๋ฆฌ :: Tree Data Structure.

by Wonit 2020. 6. 18.

ํŠธ๋ฆฌ ์ž๋ฃŒ๊ตฌ์กฐ

ํŠธ๋ฆฌ ์ž๋ฃŒ๊ตฌ์กฐ๋Š” ์šฐ๋ฆฌ๊ฐ€ ์ผ์ƒ์„ ์‚ด๋ฉด์„œ ๋ชจ๋ฅด์ง€๋งŒ ์ž์ฃผ ๋งˆ์ฃผํ•˜๊ณ  ์‚ฌ์šฉํ•˜๋Š” ๊ฐœ๋…์ด๋‹ค.

 

์ด๋ฅผํ…Œ๋ฉด ์šฐ๋ฆฌ ๋ถ€๋ชจ์™€ ์ž์‹์˜ ๊ด€๊ณ„ ๋˜ํ•œ ํŠธ๋ฆฌ ๊ตฌ์กฐ์ด๋‹ค.


ํŠธ๋ฆฌ ํ•˜๋ฉด ๊ฐ€์žฅ ๋Œ€ํ‘œ์ ์œผ๋กœ ํ‘œํ˜„ํ•˜๋Š” ๊ฒƒ์ด ๋ฐ”๋กœ ์ปดํ“จํ„ฐ์˜ File System์ด๋‹ค.

 

ํŒŒ์ผ์„ ์ฐพ๊ธฐ ์œ„ํ•ด์„œ ์šฐ๋ฆฌ๋Š” ๋””๋ ‰ํ† ๋ฆฌ ์•ˆ์— ๋˜ ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ํŒŒ๊ณ  ๋“ค์–ด๊ฐ€์„œ ํŒŒ์ผ์„ ์ฐพ๊ณค ํ•˜๋Š”๋ฐ, ์ด๊ฒƒ์ด ๋ฐ”๋กœ ํŠธ๋ฆฌ์˜ ์‚ฌ์šฉ์ด๋‹ค.

๋” ๋‹ค์–‘ํ•œ ํŠธ๋ฆฌ์˜ ์‚ฌ์šฉ์„ ๋ณด๊ณ  ํŠธ๋ฆฌ๋ฅผ ์œ ์ถ”ํ•ด๋ณด์ž!

  • File System
  • HTML Tag ๊ตฌ์กฐ
  • ๋„-์‹œ๊ตฐ๊ตฌ-์๋ฉด๋™-์˜ ์ฃผ์†Œ ์ฒด๊ณ„
  • DBMS
  • ๋ผ์šฐํ„ฐ ํ†ต์‹  ์•Œ๊ณ ๋ฆฌ์ฆ˜
  • ๊ฒ€์ƒ‰ ์—”์ง„

์œ„์—์„œ ๋‚˜์˜จ ์‚ฌ์šฉ๋“ค์ด ๊ฐ–๋Š” ๊ฐ€์žฅ ๋‘๋“œ๋Ÿฌ์ง€๋Š” ๊ณตํ†ต์ ์ด ์žˆ๋Š”๋ฐ, ๋ฐ”๋กœ ๊ณ„์ธต ๊ตฌ์กฐ๋ผ๋Š” ๊ฒƒ์ด๋‹ค.

๊ณ„์ธต ๊ตฌ์กฐ

ํŠธ๋ฆฌ๋Š” ๊ณ„์ธต ๊ตฌ์กฐ์˜ ๋Œ€ํ‘œ์  ์ž๋ฃŒ๊ตฌ์กฐ์ด๋‹ค.

 

๊ณ„์ธต ๊ตฌ์กฐ๋ผ๊ณ  ํ•จ์€ ๋ถ€๋ชจ-์ž์‹ ๊ด€๊ณ„๋ฅผ ๊ฐ–๋Š” ๋ฐ์ดํ„ฐ์˜ ๊ตฌ์กฐ๋ฅผ ๋œปํ•œ๋‹ค.

 

์ด์™€ ๋น„์Šทํ•œ ์—ฌ๋Ÿฌ ํŠน์„ฑ์ด ์กด์žฌํ•˜๋Š”๋ฐ(์‚ฌ์ดํด์„ ๊ฐ–์ง€ ์•Š๋Š” ๋น„์„ ํ˜• ์ž๋ฃŒ๊ตฌ์กฐ, ๊ทธ๋ž˜ํ”„์˜ ์ผ์ข…, ์—ฌ๋Ÿฌ ๋…ธ๋“œ๊ฐ€ ํ•œ ๋…ธ๋“œ๋ฅผ ๊ฐ€๋ฆฌํ‚ฌ ์ˆ˜ ์—†์Œ) ์ด๋Š” ์•„์ง ์ดํ•ดํ•˜๊ธฐ ์–ด๋ ค์šฐ๋‹ˆ ๋„˜์–ด๊ฐ€์ž.

 

๊ทธ๋Ÿผ ์ด๋Ÿฌํ•œ ๊ณ„์ธต ๊ตฌ์กฐ๋ฅผ ๊ฐ–๋Š” ํŠธ๋ฆฌ๊ฐ€ ์™œ ์œ ๋ช…ํ•˜๊ณ  ์‹ค์ƒํ™œ์— ๋งŽ์ด ์‚ฌ์šฉํ• ๊นŒ?


๊ทธ ์ด์œ ๋Š” ๋ฐ”๋กœ ํƒ์ƒ‰์ด๋‹ค. ํƒ์ƒ‰์„ ์œ„ํ•ด ํŠธ๋ฆฌ๊ฐ€ ํƒœ์–ด๋‚ฌ๋‹ค๊ณ  ํ•ด๋„ ๊ณผ์–ธ์ด ์•„๋‹ ๋งŒํผ ํŠธ๋ฆฌ์—์„œ ํƒ์ƒ‰ ํšจ์œจ์€ ์—„์ฒญ๋‚˜๋‹ค.

 

์šฐ๋ฆฌ๋Š” ์ด ํƒ์ƒ‰ ํšจ์œจ์„ ์œ„ํ•ด์„œ ํŠธ๋ฆฌ๋ฅผ ์ถฉ๋ถ„ํžˆ ๋ฐฐ์›Œ๋ณผ ๊ฐ€์น˜๊ฐ€ ์žˆ๋Š”๋ฐ, ๊ทธ ๊ธธ์ด ํ—˜๋‚œํ•˜๋ฏ€๋กœ ์ฒœ์ฒœํžˆ ํ•˜๋‚˜์”ฉ ์ •๋ณตํ•ด๋ณด์ž.

ํŠธ๋ฆฌ ๊ตฌ์„ฑ ์š”์†Œ

์ถœ์ฒ˜ : https://towardsdatascience.com/

ํŠธ๋ฆฌ๋ฅผ ์„ค๋ช…ํ•˜๋Š”๋ฐ ์ข‹์€ ์ž๋ฃŒ๊ฐ€ ์žˆ์–ด์„œ ๊ฐ€์ ธ์™”๋‹ค.

 

์œ„์— ์žˆ๋Š” ๊ตฌ์„ฑ ์š”์†Œ ํ•˜๋‚˜ ํ•˜๋‚˜๋ฅผ ๋ด๋ณด์ž.

 

ํŠธ๋ฆฌ๋ฅผ ์ดํ•ดํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ์— ์žˆ๋Š” ๋…ธ๋“œ๋ผ๋Š” ๊ฐœ๋…์— ๋Œ€ํ•ด ์•Œ๊ณ  ์žˆ์–ด์•ผ ํ•˜๋ฏ€๋กœ ํ•œ ๋ฒˆ ๊ฐ€๋ณ๊ฒŒ ์ฝ๊ณ  ์˜ค๋Š” ๊ฒƒ๋„ ์ข‹์€ ๋ฐฉ๋ฒ•์ด๋‹ค.

Key

ํ‚ค, ํ˜น์€ Value๋ผ๊ณ ๋„ ๋ถˆ๋ฆฌ๋ฉฐ ํ•ด๋‹น ๋…ธ๋“œ์— ์žˆ๋Š” ์‹ค์งˆ์  Data๊ฐ€ ๋œ๋‹ค.

Root

ํŠธ๋ฆฌ์˜ ๊ฐ€์žฅ ์œ— ๋ถ€๋ถ„์— ์œ„์น˜ํ•˜๋Š” ๋…ธ๋“œ๋ฅผ ๋ฃจํŠธ ๋…ธ๋“œ๋ผ๊ณ  ํ•œ๋‹ค. ํ•˜๋‚˜์˜ ํŠธ๋ฆฌ์—๋Š” ํ•˜๋‚˜์˜ ๋ฃจํŠธ ๋…ธ๋“œ๊ฐ€ ์กด์žฌํ•œ๋‹ค.

Edge

๊ฐ„์„ ์ด๋ผ๊ณ ๋„ ๋ถˆ๋ฆฌ๋ฉฐ ํŠธ๋ฆฌ์™€ ํŠธ๋ฆฌ๋ฅผ ์ด์–ด์ฃผ๋Š” ๊ฐœ๋…์  ์กด์žฌ์ด๋‹ค. ๊ฐ„์„ ์œผ๋กœ ์„œ๋กœ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ์œผ๋ฉด ํ•ด๋‹น ํŠธ๋ฆฌ๋Š” ๋ถ€๋ชจ-์ž์‹ ๊ด€๊ณ„๋กœ ์ด์–ด์ง„ ๊ฒƒ์ด๋‹ค.

Leaf Nodes

ํŠธ๋ฆฌ์˜ ๊ฐ€์žฅ ์•„๋ž˜์— ์œ„์น˜ํ•˜๋Š” ๋…ธ๋“œ๋ฅผ ๋ฆฌํ”„ ๋…ธ๋“œ๋ผ๊ณ  ํ•œ๋‹ค. ์ฃผ์˜ํ•ด์•ผํ•  ์ ์ด ํŠธ๋ฆฌ์— ๋ฌผ๋ฆฌ์ ์œผ๋กœ ๊ฐ€์žฅ ์•„๋ž˜์— ์žˆ๋Š” ๋…ธ๋“œ๋ฅผ ๋œปํ•˜๋Š”๊ฒŒ ์•„๋‹ˆ๋ผ ๋…ธ๋“œ๊ฐ€ ๋” ์ด์ƒ ๊ฐ„์„ ์œผ๋กœ ์—ฐ๊ฒฐํ•  ์ˆ˜ ์—†๊ณ , ๋” ๋ป—์–ด๋‚˜๊ฐˆ ์ˆ˜ ์—†๋Š” ๋งˆ์ง€๋ง‰ ๋…ธ๋“œ์— ์œ„์น˜ํ•  ๋•Œ ๋ฆฌํ”„ ๋…ธ๋“œ๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค.

Siblings

๊ฐ™์€ ๋ถ€๋ชจ๋ฅผ ๊ฐ–๊ณ  ๊ฐ™์€ ์ฐจ์ˆ˜์— ์žˆ๋Š” ๋…ธ๋“œ๋ฅผ ํ˜•์žฌ(Siblings) ๊ด€๊ณ„๋ผ๊ณ  ํ•œ๋‹ค. ์ฐจ์ˆ˜๋Š” ๋ฐ‘์— ์žˆ๋Š” Height of the tree์ธ๋ฐ, ๋ฃจํŠธ ๋…ธ๋“œ๊ฐ€ 0์ฐจ์ˆ˜(ํ˜น์€ 1์ฐจ์ˆ˜) ๋ถ€ํ„ฐ ํ•œ ์„ธ๋Œ€๊ฐ€ ์ง€๋‚  ์ˆ˜๋ก ์ฐจ์ˆ˜๊ฐ€ 1์”ฉ ๋Š˜์–ด๋‚œ๋‹ค.

Parent

ํ•œ ๋…ธ๋“œ์—์„œ ์œ„๋กœ ์ง์ ‘์ ์œผ๋กœ ์—ฐ๊ฒฐ๋œ ๋…ธ๋“œ๋ฅผ ๋ถ€๋ชจ ๋…ธ๋“œ๋ผ๊ณ  ํ•œ๋‹ค. ๋…ธ๋“œ๋Š” 1๊ฐœ์˜ ๋ถ€๋ชจ ๋…ธ๋“œ๋ฅผ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋‹ค. ์•„๊นŒ ์œ„์—์„œ ๋งํ•œ ์—ฌ๋Ÿฌ ํŠน์ง•์ค‘ ํ•˜๋‚˜๊ฐ€ ์ด๊ฒƒ์ด๋‹ค.

Children

์–ด๋–ค ๋…ธ๋“œ๋กœ ๋ถ€ํ„ฐ ๊ฐ„์„ ์œผ๋กœ ์—ฐ๊ฒฐ๋œ ์•„๋ž˜์ชฝ ๋…ธ๋“œ๋ฅผ ์ž์‹ ๋…ธ๋“œ๋ผ๊ณ  ํ•œ๋‹ค. ๋…ธ๋“œ๋Š” ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์ž์‹์„ ๊ฐ€์งˆ ์ˆ˜ ์žˆ์ง€๋งŒ ์ž์‹ ๋…ธ๋“œ๋Š” ํ•˜๋‚˜์˜ ๋ถ€๋ชจ๋งŒ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋‹ค.

SubTree

ํŠธ๋ฆฌ ์•ˆ์—์„œ ๋‹ค์‹œ ์–ด๋–ค ๋…ธ๋“œ๋ฅผ ๋ฃจํŠธ ๋…ธ๋“œ๋กœ ์ •ํ•˜๊ณ  ๊ทธ ์ž์†์œผ๋กœ ์ด๋ฃจ์–ด์ง„ ํŠธ๋ฆฌ๋ฅผ ์„œ๋ธŒ ํŠธ๋ฆฌ๋ผ๊ณ  ํ•œ๋‹ค.

Height of the Tree

ํŠธ๋ฆฌ์˜ ๋†’์ด, ์ฆ‰ ์ฐจ์ˆ˜(Degree, Level)๋ผ๊ณ ๋„ ํ•˜๋ฉฐ ๋ฃจํŠธ ๋…ธ๋“œ๋กœ๋ถ€ํ„ฐ ํ•œ ๊ณ„์ธต์ด ๋‚ด๋ ค๊ฐˆ ์ˆ˜๋ก 1์”ฉ ์ฐจ์ˆ˜๊ฐ€ ์ฆ๊ฐ€ํ•œ๋‹ค.

 


์ด์ œ ํŠธ๋ฆฌ์— ๋Œ€ํ•œ ๊ฐœ๋…์€ ์–ด๋Š ์ •๋„ ์žกํ˜€์žˆ์„ ๊ฑฐ๋ผ๊ณ  ์ƒ๊ฐํ•œ๋‹ค. ๋‹ค์Œ ์‹œ๊ฐ„์—๋Š” ํŠธ๋ฆฌ์˜ ํƒ์ƒ‰ ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด์„œ ๊ฐœ๋…์ ์œผ๋กœ ์•Œ์•„๋ณด๊ณ  ์ถ”ํ›„์—๋Š” ์ฝ”๋“œ๋กœ ๊ตฌํ˜„ํ•ด๋ณด์ž.

๋Œ“๊ธ€