์ถ์ฒ
ChatGPT
์คํ ํธ๋ฆฌ(Skewed Tree)๋ ํ์ชฝ์ผ๋ก ์น์ฐ์น ์ด์ง ํธ๋ฆฌ๋ฅผ ๋งํ๋ค. ์ด ํธ๋ฆฌ๋ ๊ท ํ์ ์ ์งํ์ง ๋ชปํ ์ด์ง ํธ๋ฆฌ๋ก, ๋ชจ๋ ๋ ธ๋๊ฐ ์ผ์ชฝ ๋๋ ์ค๋ฅธ์ชฝ์ผ๋ก๋ง ์ฐ๊ฒฐ๋์ด ์๋ค. ๊ฒฐ๊ณผ์ ์ผ๋ก ์คํ ํธ๋ฆฌ๋ ์ฌ์ค์ ์ฐ๊ฒฐ ๋ฆฌ์คํธ์ ๊ฐ์ ๊ตฌ์กฐ๊ฐ ๋์ด ํ์, ์ฝ์ , ์ญ์ ์ ๊ฐ์ ์ฐ์ฐ์์ ๋นํจ์จ์ ์ผ ์ ์๋ค.
์คํ ํธ๋ฆฌ์ ์ข ๋ฅ
์คํ ํธ๋ฆฌ๋ ์ผ์ชฝ ๋๋ ์ค๋ฅธ์ชฝ์ผ๋ก ์น์ฐ์น ์ ์๋ค.
1. ์ผ์ชฝ ์คํ ํธ๋ฆฌ Left-Skewed Tree
๋ชจ๋ ๋ ธ๋๊ฐ ์ผ์ชฝ ์์ ๋ ธ๋๋ง์ ๊ฐ์ง๊ณ , ์ค๋ฅธ์ชฝ ์์ ๋ ธ๋๋ ์๋ ํธ๋ฆฌ์ด๋ค.
์์
5
/
4
/
3
2. ์ค๋ฅธ์ชฝ ์คํ ํธ๋ฆฌ Right-Skewed Tree
๋ชจ๋ ๋ ธ๋๊ฐ ์ค๋ฅธ์ชฝ ์์ ๋ ธ๋๋ง์ ๊ฐ์ง๊ณ , ์ผ์ชฝ ์์ ๋ ธ๋๋ ์๋ ํธ๋ฆฌ์ด๋ค.
1
\
2
\
3
\
4
\
5
์คํ ํธ๋ฆฌ์ ๋ฌธ์ ์
์คํ ํธ๋ฆฌ์์๋ ๋ชจ๋ ๋ ธ๋๊ฐ ํ์ชฝ ๋ฐฉํฅ์ผ๋ก๋ง ์ฐ๊ฒฐ๋์ด ์๊ธฐ ๋๋ฌธ์, ์ด์ง ํ์ ํธ๋ฆฌ์ ์ฅ์ ์ ๊ฑฐ์ ์๊ฒ ๋๋ค. ์ด์ง ํ์ ํธ๋ฆฌ์์ ํ์, ์ฝ์ , ์ญ์ ์ฐ์ฐ์ ์๊ฐ ๋ณต์ก๋๋ ํธ๋ฆฌ์ ๋์ด์ ๋ฐ๋ผ ๊ฒฐ์ ๋๋๋ฐ, ์คํ ํธ๋ฆฌ์ ๋์ด๋ ๋ ธ๋์ ๊ฐ์์ ๊ฐ์์ง ์ ์๋ค. ๊ทธ ๊ฒฐ๊ณผ, ์ต์ ์ ๊ฒฝ์ฐ ์๊ฐ ๋ณต์ก๋๋ O(n)๊ฐ ๋๋ค.
์ด๊ฒ์ ๊ท ํ์กํ ์ด์ง ํธ๋ฆฌ์ ์๊ฐ ๋ณต์ก๋ O(log n)์ ๋นํด ๋งค์ฐ ๋นํจ์จ์ ์ด๋ค.
์คํ ํธ๋ฆฌ๊ฐ ๋ฐ์ํ๋ ์ด์
์คํ ํธ๋ฆฌ๋ ๋ฐ์ดํฐ๊ฐ ํน์ ์์๋ก ์ฝ์ ๋ ๋ ๋ฐ์ํ๋ค. ์๋ฅผ ๋ค์ด, ์ด์ง ํ์ ํธ๋ฆฌ์ ์ ๋ ฌ๋ ๋ฐ์ดํฐ๋ฅผ ์ฝ์ ํ ๊ฒฝ์ฐ, ํธ๋ฆฌ๋ ํ ์ชฝ์ผ๋ก๋ง ๊ณ์ ์๋ผ์ ์คํ ํธ๋ฆฌ๊ฐ ๋๋ค.
์์
// ์ฝ์
์์: 1, 2, 3, 4, 5
BinarySearchTree bst = new BinarySearchTree();
bst.insert(1);
bst.insert(2);
bst.insert(3);
bst.insert(4);
bst.insert(5);
์์ ๊ฐ์ด ์ค๋ฆ์ฐจ์์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์ฝ์ ํ๋ฉด ํธ๋ฆฌ๊ฐ ์ค๋ฅธ์ชฝ์ผ๋ก๋ง ๊ณ์ ์๋ผ๋ฉฐ, ์ค๋ฅธ์ชฝ ์คํ ํธ๋ฆฌ๊ฐ ํ์ฑ๋๋ค.
์คํ ํธ๋ฆฌ ํด๊ฒฐ ๋ฐฉ๋ฒ
์คํ ํธ๋ฆฌ๋ ์๊ฐ ๊ท ํ ์ด์ง ํ์ ํธ๋ฆฌ๋ฅด ์ฌ์ฉํด ํด๊ฒฐํ ์ ์๋ค. ์๊ฐ ๊ท ํ ์ด์ง ํ์ ํธ๋ฆฌ๋ ํธ๋ฆฌ์ ์ฝ์ , ์ญ์ ์ฐ์ฐ ํ์๋ ํธ๋ฆฌ์ ๊ท ํ์ ์ ์งํ๋ ์๊ณ ๋ฆฌ์ฆ์ ์ฌ์ฉํด, ํ์, ์ฝ์ , ์ญ์ ์ฐ์ฐ์ ํจ์จ์ ์ผ๋ก ์ํํ ์ ์๋ค.
๋ํ์ ์ธ ์๊ฐ ๊ท ํ ์ด์ง ํ์ ํธ๋ฆฌ๋ก๋ AVL ํธ๋ฆฌ์ ๋ ๋-๋ธ๋ ํธ๋ฆฌ๊ฐ ์๋ค. ์ด๋ค์ ์ฝ์ ๋๋ ์ญ์ ์์ ํธ๋ฆฌ์ ๊ท ํ์ ์๋์ผ๋ก ๋ง์ถฐ์ฃผ์ด, ํธ๋ฆฌ์ ๋์ด๋ฅผ log n์ผ๋ก ์ ์งํ๋ค.
๊ฒฐ๋ก
์คํ ํธ๋ฆฌ๋ ํ์ชฝ์ผ๋ก ์น์ฐ์น ์ด์ง ํธ๋ฆฌ๋ก, ํธ๋ฆฌ๊ฐ ๊ท ํ์ ์ด๋ฃจ์ง ๋ชปํด ํ์, ์ฝ์ , ์ญ์ ์ฐ์ฐ์์ ๋นํจ์จ์ฑ์ ์ด๋ํ ์ ์๋ฐ. ์ด๋ฌํ ๋ฌธ์ ๋ ์๊ฐ ๊ท ํ ํธ๋ฆฌ(๋ ๋-๋ธ๋ ํธ๋ฆฌ, AVL ํธ๋ฆฌ ๋ฑ)๋ฅผ ์ฌ์ฉํด ํด๊ฒฐํ ์ ์๋ค.
'๋น ๊ตฌ๋ฉ ์ฑ์ฐ๊ธฐ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[์๋ฃ ๊ตฌ์กฐ] ์๊ฐ ๊ท ํ ์ด์ง ํ์ ํธ๋ฆฌ Self-Balancing Binary Search Tree (0) | 2024.09.09 |
---|---|
[์๋ฃ ๊ตฌ์กฐ] ์ด์ง ํ์ ํธ๋ฆฌ Binary search Tree, BST (0) | 2024.09.09 |
[์๋ฃ ๊ตฌ์กฐ] ์ด์ง ํธ๋ฆฌ Binary Tree (0) | 2024.09.08 |
[์๋ฃ๊ตฌ์กฐ] ๊ตฌ๋ฌธ ํธ๋ฆฌ Syntax Tree, ์ถ์ ๊ตฌ๋ฌธ ํธ๋ฆฌ AST, Abstract Syntax Tree (0) | 2024.09.04 |
[์๋ฃ๊ตฌ์กฐ] ํธ๋ฆฌ Tree (0) | 2024.09.04 |