๋ชจ๋ ๋ ธ๋์ ์ฐจ์๊ฐ 2 ์ดํ์ธ ํธ๋ฆฌ
์ํ์ ์ผ๋ก, ์ด์งํธ๋ฆฌ์ ๊ตฌ์ฑ์ ๊ดํ ์ด๋ก ์ ์ ๋ฆฌํ๊ธฐ ์ฝ๊ณ , ์ปดํจํฐ ๋ด๋ถ์์ ๊ตฌํํ๊ธฐ๋ ํจ์จ์ ์
๋ชจ๋ ๋ ธ๋๊ฐ 2๊ฐ ์ดํ์ ์์ ๋ ธ๋๋ฅผ ๊ฐ์ง๋ฏ๋ก, ์ผ๋ฐ์ฑ์ ์์ง ์๊ณ '์ค๋ฅธ์ชฝ', '์ผ์ชฝ'์ด๋ผ๋ ๋ฐฉํฅ ๊ฐ๋ ์ ๋ถ์ฌ ๊ฐ๋ฅ
์ค๋ฅธ์ชฝ ๋ ธ๋, ์ผ์ชฝ ๋ ธ๋์ ๊ฐ๋ ์ ์ ๊ทผ๋ ์์
ํฌํ ์ด์ง ํธ๋ฆฌ
์ด์ง ํธ๋ฆฌ์ ๊ฐ ๋ ๋ฒจ์์ ํ์ฉ๋๋ ์ต๋ ๊ฐ์ ๋ ธ๋๋ฅผ ๊ฐ์ง๋ ํธ๋ฆฌ
์์ ์ด์ง ํธ๋ฆฌ
๋์ด๊ฐ k์ธ ์ด์ง ํธ๋ฆฌ๊ฐ '0๋ ๋ฒจ'๋ถํฐ 'k-2 ๋ ๋ฒจ'๊น์ง ๋ค ์ฑ์ฐ๊ณ , ๋ง์ง๋ง 'k-1 ๋ ๋ฒจ'์์ ์ผ์ชฝ๋ถํฐ ์ค๋ฅธ์ชฝ์ผ๋ก ๋ ธ๋๋ค์ด ์ฐจ๋ก๋ก ์ฑ์์ง ์ด์งํธ๋ฆฌ
์ด์งํธ๋ฆฌ ๊ตฌํ
1. ๋ฐฐ์ด์ ์ด์ฉํ ๊ตฌํ
- ํธ๋ฆฌ๊ฐ ์์ ์ด์ง ํธ๋ฆฌ ๋๋ ํฌํ ์ด์ง ํธ๋ฆฌ์ธ ๊ฒฝ์ฐ ๋ญ๋น๋๋ ๊ณต๊ฐ์ด ์์ด ํจ์จ์
ํธ๋ฆฌ๊ฐ ๊น์ด์ง์๋ก ๊ธฐ์ต์ฅ์ ๋ญ๋น๊ฐ 2์ ๊ฑฐ๋ญ์ ๊ณฑ์ ๋น๋กํ๋ฉฐ ๋ญ๋น๊ฐ ์ฌํด์ง
2. ํฌ์ธํฐ๋ฅผ ์ด์ฉํ ์ด์งํธ๋ฆฌ ๊ตฌํ
struct node{
struct node *left;
struct node *right;
int info;
}
์ด์ง ํธ๋ฆฌ ์ฐ์ฐ
1. ์ด์งํธ๋ฆฌ ์ํ
์ด์ง ํธ๋ฆฌ์ ๊ฐ ๋ ธ๋๋ฅผ (๋น ์ง์์ด ๊ทธ๋ฆฌ๊ณ ์ค๋ณต์์ด) ํ ๋ฒ์ฉ ๋ฐฉ๋ฌธํ๋ ๊ฒ
2. ์ด์งํธ๋ฆฌ ์ ์ ์ํ
๋ฃจํธ๋ ธ๋ - ์ผ์ชฝ ์์๋ ธ๋ - ์ค๋ฅธ์ชฝ ์์๋ ธ๋ (P -> SL -> SR)
3. ์ด์งํธ๋ฆฌ ํ์ ์ํ
์ผ์ชฝ ์์๋ ธ๋ - ์ค๋ฅธ์ชฝ ์์๋ ธ๋ - ๋ฃจํธ๋ ธ๋ (SL -> SR -> P)
4. ์ด์งํธ๋ฆฌ ์ค์ ์ํ
์ผ์ชฝ ์์๋ ธ๋ - ๋ฃจํธ๋ ธ๋ - ์ค๋ฅธ์ชฝ ์์๋ ธ๋ ( SL -> P -> SR)
5. ์ด์งํธ๋ฆฌ ์์ฑ/์ฝ์ /์ญ์
- ์ผ๋ฐ์ ์ธ ์ด์งํธ๋ฆฌ๋ฅผ ์์ฑํ๋ ๊ฒ์ ์ฐ๊ฒฐ ๋ฆฌ์คํธ ์ฐ์ฐ์ ์ฌ์ฉ
- ์ฒซ ๋ ธ๋๋ฅผ ์์ฑํ๋ฉด ๋ฃจํธ ๋ ธ๋๊ฐ ๋๊ณ , ์๋ก์ด ๋ ธ๋๋ฅผ ์ถ๊ฐํ๋ ค๋ฉด ์ฐ๊ฒฐ ๋ฆฌ์คํธ์ ์ฝ์ ์ฐ์ฐ ์ฌ์ฉ
- ๋ ธ๋๋ฅผ ์ญ์ ํ ๋ ์ญ์ ํ๋ ค๋ ๋ ธ๋๊ฐ ๋ฆฌํ๋ ธ๋์ธ ๊ฒฝ์ฐ๋ ํด๋น ๋ ธ๋๋ฅผ ๊ฐ๋ฆฌํค๋ ํฌ์ธํฐ๋ฅผ NULL๋ก ์ง์ ํ๋ฉด ๋จ
- ๋ฆฌํ๋ ธ๋๊ฐ ์๋ ๊ฒฝ์ฐ์๋ ์ญ์ ํ๋ ค๋ ๋ ธ๋์ ์์ ๋ ธ๋์ ๋ํ ์ฒ๋ฆฌ๋ฅผ ์ถ๊ฐ๋ก ํด์ฃผ์ด์ผ ํจ
์ผ๋ฐ ํธ๋ฆฌ๋ฅผ ์ด์ง ํธ๋ฆฌ๋ก ๋ณํํ๋ ๋ฐฉ๋ฒ
์ผ๋ฐ ํธ๋ฆฌ์ ๋ํ์ฌ ๊ฐ ๋ ธ๋์ ํ์ ๋ค์ ์ฐ๊ฒฐ -> ๊ฐ ๋ ธ๋์ ๋ํ์ฌ ์ผ์ชฝ ๋งํฌ๋ง ๋จ๊ธฐ๊ณ ๋ชจ๋ ์ ๊ฑฐ
๋ฃจํธ ๋ ธ๋๋ ๋ฐ๋์ ์ผ์ชฝ ์์ ๋ ธ๋ ํ๋๋ง ๊ฐ๋๋ก ํ๋ค
'๐ฉโ๐ป ํ๋ก๊ทธ๋๋ฐ > โจ ์๋ฃ๊ตฌ์กฐ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
์คํ(Stack) (0) | 2024.04.12 |
---|---|
ํ(Queue) (1) | 2024.04.12 |
๋ฆฌ์คํธ(List) (0) | 2024.04.11 |
๋ฐฐ์ด(Array) (0) | 2024.04.11 |
์ค๋ ๋ ํธ๋ฆฌ (0) | 2024.04.03 |