๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

์ „์ฒด ๊ธ€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.
๋ฐ˜์‘ํ˜•