7์ฅ. ํธ๋ฆฌ
1. ํธ๋ฆฌ์ ๊ฐ๋
ํธ๋ฆฌ๋ก ๋ํ๋ธ ํธ๋ฆฌ
๊ณ์ธตํ ๊ตฌ์กฐ ๋ฐ์ดํฐ ํํ์ ์ ํฉํ ์๋ฃ๊ตฌ์กฐ
ex1) Tree -> Binary Tree / m-way Tree
ex2)
Nodes : ๋ชจ์ฐจ๋ฅดํธ
, ๋ฐํ
, ๋ฒ ํ ๋ฒค
, ์ธ์
, ํผ์นด์
, ์์ธ์ํ์ธ
, ๋ดํด
Root : ์์ธ -> ์์ ๊ฐ / ํ์
2. ์ฉ์ด
- ๋
ธ๋ (์ ์ )
- ํธ๋ฆฌ๋ฅผ ๊ตฌ์ฑํ๋ ํญ๋ชฉ
- ์๋ธํธ๋ฆฌ
- ํน์ ๋ ธ๋ ํ์๋ก ํ์๋๋ ์๋ก์ด ํธ๋ฆฌ
- ๋ฃจํธ๋
ธ๋
- ๋ถ๋ชจ ๋ ธ๋๋ฅผ ๊ฐ์ง์ง ์๋ ์ต์์ ๋ ธ๋
- ๋ฆฌํ๋
ธ๋
- ์์ ๋ ธ๋๋ฅผ ๊ฐ์ง์ง ์๋ ์ตํ์ ๋ ธ๋
- ์ง์
์ฐจ์
- ๋ ธ๋๋ก ๋ค์ด์ค๋ ์ ์ ๊ฐ์
- ๋ฃจํธ๋ ธ๋๋ 0์ด๋ฉฐ ๋๋จธ์ง ๋ ธ๋๋ ๋ฌด์กฐ๊ฑด 1์ด๋ค. 2์ด์์ธ ๊ฒฝ์ฐ ๊ทธ๋ํ๊ฐ ๋๋ค.
- ์ง์ถ ์ฐจ์
- ๋ ธ๋๋ก ๋ถํฐ ๋๊ฐ๋ ์ ์ ๊ฐ์
- ๋ ธ๋์ ์ฐจ์๋ฅผ ๊ฒฐ์ ํ๋ค. (degree of a node)
- ์ต๋ ์ฐจ์๊ฐ ํธ๋ฆฌ ์ ์ฒด์ ์ฐจ์๊ฐ ๋๋ค. (degree of a tree)
- ๋ ๋ฒจ
- ๋ฃจํธ ๋ ธ๋๋ก๋ถํฐ ํด๋น ๋ ธ๋๊น์ง ์ด์ด์ง ์ ์ ๊ธธ์ด
3. ํธ๋ฆฌ์ ์ถ์์๋ฃํ (ADT)
Tree Create()
::= ํธ๋ฆฌ๋ฅผ ์์ฑํ๊ณ ๋ฃจํธ ๋
ธ๋๋ฅผ ๊ฐ๋ฆฌํค๋ ํฌ์ธํฐ๋ฅผ ๋ฐํํ๋ค.
Destroy(Tree)
::= ํธ๋ฆฌ ๊ฐ์ฒด๊ฐ ์ ์ ์ค์ธ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๋ฐํํ๋ค.
Tree Copy_Tree(Tree)
::= ํธ๋ฆฌ๋ฅผ ๋ณต์ฌํ๊ณ ์๋ก ์์ฑํ ํธ๋ฆฌ์ ๋ฃจํธ ๋
ธ๋๋ฅผ ๊ฐ๋ฆฌํค๋ ํฌ์ธํฐ๋ฅผ ๋ฐํํ๋ค.
Node Insert(n)
::= ํธ๋ฆฌ์ ๋
ธ๋ n์ ์ฝ์
ํ๋ค.
Delete()
::= ํธ๋ฆฌ์์ ๋
ธ๋๋ฅผ ์ญ์ ํ๋ค. ๋ณดํต ์ฌ๊ตฌ์ฑ ๋จ๊ณ๋ฅผ ํฌํจํ๋ค.
Node Root()
::= ๋ฃจํธ ๋
ธ๋ ๊ฐ์ ๋ฐํํ๋ค.
Node Parent(n)
::= ๋
ธ๋ n์ ๋ถ๋ชจ ๋
ธ๋๋ฅผ ๋ฐํํ๋ค. n์ด ๋ฃจํธ๋
ธ๋์ด๋ฉด ์์ธ๋ฅผ ๋ฐํํ๋ค.
List<Node> Children(n)
::= ๋
ธ๋ n์ ์์ ๋
ธ๋๋ค์ ๋ฐํํ๋ค. ๋
ธ๋ n์ด ๋ฆฌํ๋
ธ๋์ด๋ฉด ์์ธ๋ฅผ ๋ฐํํ๋ค.
boolean IsRoot(n)
::= ๋
ธ๋ n์ด ๋ฃจํธ๋
ธ๋์ด๋ฉด True, ์๋๋ฉด False๋ฅผ ๋ฐํํ๋ค.
boolean IsInternal(n)
::= ๋
ธ๋ n์ด ๋ด๋ถ๋
ธ๋์ด๋ฉด True, ์๋๋ฉด False๋ฅผ ๋ฐํํ๋ค.
boolean IsLeaf(n)
::= ๋
ธ๋ n์ด ๋ฆฌํ๋
ธ๋์ด๋ฉด True, ์๋๋ฉด False๋ฅผ ๋ฐํํ๋ค.
boolean IsEmpty(Tree)
::= ํธ๋ฆฌ๊ฐ ๋น์์ผ๋ฉด True, ์๋๋ฉด False๋ฅผ ๋ฐํํ๋ค.
Replace(n, m)
::= ๋
ธ๋ n์ ๋
ธ๋ m์ผ๋ก ๊ต์ฒดํ๋ค.
4. ์ด์ง ํธ๋ฆฌ
์ ์
ํธ๋ฆฌ์ ์ํ ๋ชจ๋ ๋ ธ๋์ ์ฐจ์๊ฐ 2 ์ดํ์ธ ํธ๋ฆฌ๋ฅผ ์ด์ง ํธ๋ฆฌ๋ผ๊ณ ํ๋ค.
- ์ํ์ ์ธ ์ด๋ก ์ ๋ฆฌ๊ฐ ์ฉ์ดํ๋ค.
- ๊ตฌํํ๊ธฐ ๊ฐํธํ๋ค.
- ์ผ๋ฐ์ฑ์ ์์ง ์๊ณ ๋ฐฉํฅ์ฑ์ ๋ถ์ฌํ๊ธฐ ์ข๋ค. (์ผ์ชฝ, ์ค๋ฅธ์ชฝ ๋ ธ๋)
ํฌํ ์ด์ง ํธ๋ฆฌ์ ์์ ์ด์ง ํธ๋ฆฌ
- ํฌํ ์ด์ง ํธ๋ฆฌ (Perfect Binary Tree)
- ๋ชจ๋ ๋ ๋ฒจ์ด ํ์ฉ๋๋ ์ต๋ ๊ฐ์์ ๋ ธ๋๋ฅผ ๊ฐ์ง๋ ํธ๋ฆฌ
- ์์ ์ด์ง ํธ๋ฆฌ (Complete Binary Tree)
- ๋ง์ง๋ง ๋ ๋ฒจ์ ์ ์ธํ ๋ชจ๋ ๋ ๋ฒจ์ด ์ต๋ ๋ ธ๋๋ฅผ ๊ฐ์ง๊ณ ์๊ณ , ๋ง์ง๋ง ๋ ๋ฒจ์์ ์ผ์ชฝ๋ถํฐ ์ฑ์์ง๊ณ ์๋ ํธ๋ฆฌ
๋ฐฐ์ด์ ์ด์ฉํ ์ด์ง ํธ๋ฆฌ ๊ตฌํ
ํธ๋ฆฌ๊ฐ ํฌํ ์ด์ง ํธ๋ฆฌ ํน์ ์์ ์ด์ง ํธ๋ฆฌ์ธ ๊ฒฝ์ฐ ๋ญ๋น๋๋ ๊ณต๊ฐ ์์ด ํจ์จ์ ์ธ ๊ตฌํ์ด ๊ฐ๋ฅํ์ง๋ง
๋จ๋ฐฉํฅ์ผ๋ก๋ง ๋ ธ๋๋ฅผ ๊ฐ์ง ํธ๋ฆฌ์ ๊ฒฝ์ฐ ๋ฉ๋ชจ๋ฆฌ ๋ญ๋น๊ฐ ์ฌํ๋ฏ๋ก ํฌ์ธํฐ๋ฅผ ์ด์ฉํ์ฌ ๊ตฌํํ๋ ๊ฒ์ด ์ผ๋ฐ์
5. ์ด์ง ํธ๋ฆฌ ์ฐ์ฐ
์ด์ง ํธ๋ฆฌ ์ํ
ํธ๋ฆฌ์ ๊ฐ ๋ ธ๋๋ฅผ ๋น ์ง์์ด, ๊ทธ๋ฆฌ๊ณ ์ค๋ณต ์์ด ํ ๋ฒ์ฉ ๋ฐฉ๋ฌธํ๋ ๊ฒ์ ์ํ ํ๋ค๊ณ ํ๋ค.
- ์ํ ํ๋ ์์์ ๋ฐ๋ฅธ ๊ตฌ๋ถ
- ์ ์ ์ํ(PLR)
- ๋ฃจํธ
- ์ผ์ชฝ ์๋ธํธ๋ฆฌ ์ ์ ์ํ
- ์ค๋ฅธ์ชฝ ์๋ธํธ๋ฆฌ ์ ์ ์ํ
- ์ค์ ์ํ(LPR)
- ์ผ์ชฝ ์๋ธํธ๋ฆฌ ์ค์ ์ํ
- ๋ฃจํธ
- ์ค๋ฅธ์ชฝ ์๋ธํธ๋ฆฌ ์ค์ ์ํ
- ํ์ ์ํ(LRP)
- ์ผ์ชฝ ์๋ธํธ๋ฆฌ ํ์ ์ํ
- ์ค๋ฅธ์ชฝ ์๋ธํธ๋ฆฌ ํ์ ์ํ
- ๋ฃจํธ
- ์ ์ ์ํ(PLR)
'๋ ธํธ > ์๋ฃ๊ตฌ์กฐ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[์๋ฃ๊ตฌ์กฐ] 6. ์ฐ๊ฒฐ๋ฆฌ์คํธ์ ์์ฉ (0) | 2022.01.27 |
---|---|
[์๋ฃ๊ตฌ์กฐ] 5. ์ฐ๊ฒฐ ๋ฆฌ์คํธ (0) | 2022.01.06 |
[์๋ฃ๊ตฌ์กฐ] 4. ํ (0) | 2022.01.06 |
[์๋ฃ๊ตฌ์กฐ] 3. ์คํ (0) | 2022.01.06 |
[์๋ฃ๊ตฌ์กฐ] 2. ๋ฐฐ์ด (0) | 2021.12.20 |