๋ถ๋ฅ ์ ์ฒด๋ณด๊ธฐ137 12-2๊ฐ. ๋ ๋๋ธ๋ํธ๋ฆฌ (3) RB-DELETE(T, z) // T: Binary Search Tree, z : ์ญ์ ํ ๋ ธ๋ if left[z] == nil[T] or right[z] == nil[T]// ์์์ด ์๊ฑฐ๋, ์์์ด ํ๋๊ฑฐ๋ then y 2020. 11. 22. 12-1๊ฐ. ๋ ๋๋ธ๋ํธ๋ฆฌ(1) ๋ฌธ์ ์ํฉ : ํ์ค์ธ๊ณ์์๋ ์๋ฒฝํ๊ฒ ์ ๋ ฌ๋ Binary Search Tree๋ ์ฐพ๊ธฐ ํ๋ค๋ค. ์ค๋ฅธ์ชฝ์ผ๋ก ๊ทน๋จ์ ์ผ๋ก ์น์ฐ์น ๊ฒฝ์ฐ๊ฐ ์กด์ฌํ ์ ์๋ค. ๋ณด์ ๋ฐฉ๋ฒ : ๋ ๋๋ธ๋ํธ๋ฆฌ(Red-Black Tree)๋ ์ด๋ฅผ ๋ณด์ํ๊ธฐ ์ํด ๋ฑ์ฅํ๋ค. ์๋ฒฝํ๊ฒ ํธ๋ฆฌ์ ๊ท ํ์ ๋ง์ถ ์๋ ์์ผ๋, ์ด๋์ ๋ ๋ณด์์ ๊ฐ๋ฅํ๊ฒ ํ๋ค. INSERT, DELETE ์๊ณ ๋ฆฌ์ฆ์ ์ ์ ํ๊ฒ ์์ ํ๋ค. ๋ ๋๋ธ๋ํธ๋ฆฌ - ์ด์งํ์ํธ๋ฆฌ์ ์ผ์ข - ๊ท ํ ์กํ ํธ๋ฆฌ : ๋์ด๊ฐ O(log2n) - SEARCH, INSERT, DELETE ์ฐ์ฐ์ ์ต์ ์ ๊ฒฝ์ฐ์๋ O(log2n) ์๊ฐ์ ์ง์ํ๋ค. - ๊ฐ ๋ ธ๋๋ ํ๋์ ํค(key), ์ผ์ชฝ์์(left), ์ค๋ฅธ์ชฝ ์์(right), ๊ทธ๋ฆฌ๊ณ ๋ถ๋ชจ๋ ธ๋(p)์ ์ฃผ์๋ฅผ ์ ์ฅํ๋ค. - ์์๋ ธ๋๊ฐ ์กด์ฌํ์ง ์์ ๊ฒฝ์ฐ,.. 2020. 11. 17. 11-3๊ฐ. ์ด์ง๊ฒ์ํธ๋ฆฌ (Binary Search Tree) ์ง๋ ๊ฐ์ ๊ณต๋ถ ๋ด์ฉ... ์ด์ง๊ฒ์ํธ๋ฆฌ์ ํ์, ์ฝ์ ์ด์ง๊ฒ์ํธ๋ฆฌ/์ด์งํ์ํธ๋ฆฌ์ ์ญ์ Case 1 : ์์๋ ธ๋๊ฐ ์๋ ๊ฒฝ์ฐ -> ํด๋น ๋ ธ๋๋ฅผ ๊ทธ๋ฅ ์ญ์ ํ๋ค. Case 2 : ์์๋ ธ๋๊ฐ 1๊ฐ์ธ ๊ฒฝ์ฐ -> ์์ ์ ์์๋ ธ๋๋ฅผ ์๋ ์์ ์ ์์น๋ก ๋ณด๋ธ๋ค. Case 3 : ์์๋ ธ๋๊ฐ 2๊ฐ์ธ ๊ฒฝ์ฐ -> ํด๋น ๋ ธ๋์ ์๋ฆฌ๋ ๊ทธ๋๋ก ๋๊ณ , ๋ฐ์ดํฐ๋ง ์ญ์ ํ๋ค. ๊ทธ๋ฆฌ๊ณ ํด๋น ๋ ธ๋์ ๊ฐ์์ ๊ฐ๊น์ด ๊ฐ์ธ ๋ค๋ฅธ ๋ ธ๋๋ฅผ ํด๋น ์๋ฆฌ๋ก ๊ฐ์ ธ ์จ๋ค. ๊ทธ ๋ค๋ฅธ ๋ ธ๋๋ ์ญ์ ํ๋ ค๋ ๋ ธ๋์ successor์ด๋ค. ์ญ์ ํ๋ ค๋ ๋ ธ๋์ successor๋ ์ต๋ 1๊ฐ์ ์์๋ ธ๋๋ฅผ ๊ฐ์ง๋ค. TREE-DELETE(T, z)// z : ์ญ์ ํ ๋ ธ๋ { if left[z] == null or right[z] == null then y 2020. 11. 15. ์ 11-1๊ฐ. ์ด์ง๊ฒ์ํธ๋ฆฌ(Binary Search Tree) ์ด์ง๊ฒ์ํธ๋ฆฌ(Binary Search Tree) - ์ฌ๋ฌ ๊ฐ์ ํค(key)๋ฅผ ์ ์ฅ - ๋ค์๊ณผ ๊ฐ์ ์ฐ์ฐ๋ค์ ์ง์ํ๋ ์๋ฃ๊ตฌ์กฐ INSERT - ์๋ก์ด ํค์ ์ฝ์ SEARTCH - ํค ํ์ DELETE - ํค์ ์ญ์ ex) ์ฌ๋ณผํ ์ด๋ธ search insert delete ๋ฐฐ์ด ์ ๋ ฌ๋ ๊ฒฝ์ฐ O(logn) O(n) O(n) ์ ๋ ฌ๋์ง ์์ ๊ฒฝ์ฐ O(n) O(1) O(1) ์ฐ๊ฒฐ๋ฆฌ์คํธ ์ ๋ ฌ๋ ๊ฒฝ์ฐ O(n) O(n) O(1) ์ ๋ ฌ๋์ง ์์ ๊ฒฝ์ฐ O(n) O(1) O(1) ๋ค์ํ ๋ฐฉ๋ฒ๋ค - ์ ๋ ฌ๋, ํน์ ์ ๋ ฌ๋์ง ์์ ๋ฐฐ์ด ํน์ ์ฐ๊ฒฐ๋ฆฌ์คํธ๋ฅผ ์ฌ์ฉํ ๊ฒฝ์ฐ INSERT, SEARCH, DELETE ์ค ์ ์ด๋ ํ๋๋ O(n) - ์ด์งํ์ํธ๋ฆฌ(Binary Search Tree), ๋ ๋-๋ธ๋ํธ๋ฆฌ(red-black tree), A.. 2020. 11. 10. ์ด์ 1 ยทยทยท 30 31 32 33 34 35 ๋ค์