๐ฆ ํฌ๋ฆฌ์ค๋ง์ค D-10 ๊ธฐ๋ ์ผ๋ก ํธ๋ฆฌ์ ๋ํด์ ์์๋ณด์ ๐ ๐ป
๋ฌผ๋ก ํฌ๋ฆฌ์ค๋ง์ค ํธ๋ฆฌ ๋ง๊ณ ,, ์๋ฃ๊ตฌ์กฐ ํธ๋ฆฌ์ด๋ค ^_^
๋ชฉ์ฐจ
ํธ๋ฆฌ (Tree)๋ ?
ํธ๋ฆฌ๋ ๊ฐ๊ณ๋์ ๊ฐ์ ๊ณ์ธต์ ์ธ ๊ตฌ์กฐ๋ฅผ ํํํ ๋ ์ฌ์ฉํ ์ ์๋ ์๋ฃ๊ตฌ์กฐ์ด๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก ํธ๋ฆฌ์ ํฌ๊ธฐ๊ฐ N์ผ ๋, ์ ์ฒด ๊ฐ์ ์ ๊ฐ์๋ N-1์ด๋ค. ๋ถ๋ชจ-์์ ๊ด๊ณ๋ก ์ด๋ฃจ์ด์ ธ ์๋ค. ํธ๋ฆฌ ๋ด์ ํ์ ํธ๋ฆฌ๊ฐ ์๊ณ , ๊ทธ ํ์ ํธ๋ฆฌ ์์๋ ๋ ๋ค๋ฅธ ํ์ ํธ๋ฆฌ๊ฐ ์๋ ์ฌ๊ท์ ์๋ฃ๊ตฌ์กฐ์ด๊ธฐ๋ ํ๋ค. ์ปดํจํฐ์ directory ๊ตฌ์กฐ๊ฐ ํธ๋ฆฌ ๊ตฌ์กฐ์ ๋ํ์ ์ธ ์์ด๋ค.
โ๏ธ ๋ฃจํธ ๋ ธ๋ (root node) : ๋ถ๋ชจ๊ฐ ์๋ ์ต์์ ๋ ธ๋
โ๏ธ ๋จ๋ง ๋ ธ๋ (leaf node) : ์์์ด ์๋ ๋ ธ๋
โ๏ธ ํฌ๊ธฐ (size) : ํธ๋ฆฌ์ ํฌํจ๋ ๋ชจ๋ ๋ ธ๋์ ๊ฐ์
โ๏ธ ๊น์ด (depth) : ๋ฃจํธ ๋ ธ๋๋ถํฐ์ ๊ฑฐ๋ฆฌ (= ๊ฐ์ ์ ์)
โ๏ธ ๋์ด (height) : ๊น์ด ์ค ์ต๋๊ฐ
โ๏ธ ์ฐจ์ (degree) : ๊ฐ ๋ ธ๋์ (์์ ๋ฐฉํฅ) ๊ฐ์ ๊ฐ์ (= ํ์ ํธ๋ฆฌ ๊ฐ์)
์ด์ง ํ์ ํธ๋ฆฌ (Binary Search Tree)
์ด์ง ํ์์ด ๋์ํ ์ ์๋๋ก ๊ณ ์๋ ํจ์จ์ ์ธ ํ์์ด ๊ฐ๋ฅํ ์๋ฃ๊ตฌ์กฐ์ ์ผ์ข ์ด๋ค.
๐ ์ด์ง ํ์ ํธ๋ฆฌ์ ํน์ง : ์ผ์ชฝ ์์ ๋ ธ๋ < ๋ถ๋ชจ ๋ ธ๋ < ์ค๋ฅธ์ชฝ ์์ ๋ ธ๋
์ด์ง ํ์ ํธ๋ฆฌ๊ฐ ์ด๋ฏธ ๊ตฌ์ฑ๋์ด ์๋ค๋ฉด ๋ฐ์ดํฐ๋ฅผ ์กฐํํ๋ ๋ฐฉ๋ฒ์ ๋ค์๊ณผ ๊ฐ๋ค.
๐ ๋ฃจํธ ๋ ธ๋๋ถํฐ ๋ฐฉ๋ฌธํ์ฌ ํ์์ ์งํํ๋ค.
๐ ํ์ฌ ๋ ธ๋์ ์ฐพ๊ณ ์ ํ๋ ๊ฐ์ ๋น๊ตํ๋ค.
๐ ์์๋ฅผ ์ฐพ์๋ค๋ฉด ํ์์ ์ข ๋ฃํ๋ค.
ํธ๋ฆฌ์ ์ํ (Tree Traversal)
ํธ๋ฆฌ ์๋ฃ๊ตฌ์กฐ์ ํฌํจ๋ ๋ ธ๋๋ฅผ ํน์ ํ ๋ฐฉ๋ฒ์ผ๋ก ํ ๋ฒ์ฉ ๋ฐฉ๋ฌธํ๋ ๋ฐฉ๋ฒ์ ์๋ฏธํ๋ค.
๋ํ์ ์ธ ํธ๋ฆฌ ์ํ ๋ฐฉ๋ฒ์ ๋ค์๊ณผ ๊ฐ๋ค.
๐ ์ ์ ์ํ (pre-order traverse) : ๋ฃจํธ๋ฅผ ๋จผ์ ๋ฐฉ๋ฌธํ๋ค.
• ๋ ธ๋ - ์ผ์ชฝ ์์ - ์ค๋ฅธ์ชฝ ์์ ์
๐ ์ค์ ์ํ (in-order traverse) : ์ผ์ชฝ ์์์ ๋ฐฉ๋ฌธํ ๋ค์ ๋ฃจํธ๋ฅผ ๋ฐฉ๋ฌธํ๋ค.
• ์ผ์ชฝ ์์ - ๋ ธ๋ - ์ค๋ฅธ์ชฝ ์์ ์
๐ ํ์ ์ํ (post- order traverse) : ์ค๋ฅธ์ชฝ ์์์ ๋ฐฉ๋ฌธํ ๋ค์ ๋ฃจํธ๋ฅผ ๋ฐฉ๋ฌธํ๋ค.
• ์ผ์ชฝ ์์, ์ค๋ฅธ์ชฝ ์์, ๋ ธ๋ ์
์ ์ ์ํ : A - B - D - E - C - F - G
์ค์ ์ํ : D - B - E - A - F - C - G
ํ์ ์ํ : D - E - B - F - G - C - A
Reference
[์๋ฃ๊ตฌ์กฐ] ํธ๋ฆฌ (Tree)
๋ชฉ์ฐจ ํธ๋ฆฌ (Tree) ํธ๋ฆฌ (Tree)๋ ๋ ธ๋๋ค์ด ๋๋ฌด ๊ฐ์ง์ฒ๋ผ ์ฐ๊ฒฐ๋ ๋น์ ํ ๊ณ์ธต์ ์๋ฃ๊ตฌ์กฐ์ ๋๋ค. ํธ๋ฆฌ๋ ๋ค์๊ณผ ๊ฐ์ด ๋๋ฌด๋ฅผ ๊ฑฐ๊พธ๋ก ๋ค์ง์ด ๋์ ๋ชจ์๊ณผ ์ ์ฌํฉ๋๋ค. ํธ๋ฆฌ๋ ๋ํ ํธ๋ฆฌ ๋ด์ ๋ค๋ฅธ ํ
yoongrammer.tistory.com
'CS > Data Structure' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋ฑ (Deque) (0) | 2022.07.28 |
---|---|
ํ (Queue) (0) | 2022.07.25 |
์คํ (Stack) (0) | 2022.07.23 |