-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* Step 1: BST Insert, Search ꡬν * docs: RedBlackTree κ°λ μ 리(μ½μ κΉμ§) * feat: RedBlackTree balanced μ½μ ꡬν - printTree : νΈλ¦¬ ꡬ쑰 νμΈ - isBalanced : L,R μλΈ νΈλ¦¬μ λμ΄ μ°¨κ° 1λ³΄λ€ ν¬μ§ μλλ‘ - rotateLeft, rotateRight : pivotκΈ°μ€μΌλ‘ νΈλ¦¬ νμ - fixInsertion: μ½μ μ΄μμ λνμ¬ νΈλ¦¬ μ¬κ΅¬μ± * feat: balance μ²΄ν¬ ν¨μ μμ - prev λ²μ μ AVL νΈλ¦¬μ λμ΄ μ²΄ν¬νλ κ²μ΄μμ - redBlack 쑰건 λ§μ‘±νλμ§ νμΈνλ ν¨μ μΆκ° * refactor: Node μμ RBTreeNodeλ‘ λ€μ΄λ° λ³κ²½ * docs: Red-Black Tree Height μ΅λ λμ΄ μ¦λͺ * docs: RedBlack Tree μ½μ μ΄μ case μμ - case 4 -> case 2 - case 2 -> case 1 * docs: RedBlack Tree μ€λͺ νμΌ λΆλ¦¬ λ° λ¦¬λλ―Έ μμ± - Tree νμ - RB Tree insert μ 리 * docs: BST Delete μ°μ° * refactor: nodeRotate, search root μ½λ Tree -> Nodeλ‘ μ΄λ * docs: Red-Black Tree Delete μ‘°μ * docs: RedBlackTree μ λ°μ μ€λͺ * refactor: search ν¨μ λ°νκ° Nodeλ‘ λ³κ²½ * feat: Red-Black Tree μμ + μμ μ΄μ ꡬν * feat: successor κ° successor parent μ μ€λ₯Έμͺ½, μΌμͺ½ μμμΈμ§ λΆκΈ°μ²λ¦¬ successor μ λΆλͺ¨κ° rootμΌ κ²½μ° succesor λ λΆλͺ¨μ μ€λ₯Έμͺ½ μμμ΄λ€ * test: RedBlackTree λͺ¨λ μμ case Test * docs: red black tree μλͺ»λ μ€λͺ μμ * docs: RedBlackTree vs AVL Tree
- Loading branch information
Showing
46 changed files
with
1,743 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
146 changes: 146 additions & 0 deletions
146
...ce/src/main/java/com/murjune/practice/algorithm/datastructure/bst/BST_Delete.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,146 @@ | ||
BST μ μ°μ° μ€ μμ μ°μ°μ΄ κ°μ₯ κΉλ€λ‘λ€. | ||
κ·Έλ¦¬κ³ , BST μ μμ μ°μ°μ κΈ°λ°μΌλ‘ Red-Black Tree μ AVL Tree μ μμ μ°μ°μ΄ μ§νλκΈ° λλ¬Έμ BST μ μμ μ°μ°μ λ°λμ μ μκ³ μμ΄μΌ νλ€. | ||
|
||
## BST μμ | ||
|
||
BST μ μμ λ λ€μκ³Ό κ°μ 3κ°μ§ case λ‘ λλ μ μλ€. | ||
|
||
1) μμ ν λ Έλκ° leaf λ ΈλμΈ κ²½μ° (μμ 0κ°) | ||
2) μμ ν λ Έλκ° μμ λ Έλλ₯Ό ν κ° κ°μ§κ³ μλ κ²½μ° (μμ 1κ°) | ||
3) μμ ν λ Έλκ° μμ λ Έλλ₯Ό λ κ° κ°μ§κ³ μλ κ²½μ° (μμ 2κ°) | ||
|
||
μ΄ μ€ 3λ²μ§Έ case κ° κ°μ₯ 볡μ‘νλ€. | ||
|
||
|
||
## Case 1) μμ ν λ Έλκ° leaf λ ΈλμΈ κ²½μ° | ||
|
||
μμ ν λ Έλκ° leaf λ ΈλμΈ κ²½μ°, μμ ν λ Έλμ λΆλͺ¨ λ Έλμ μμ λ Έλλ₯Ό μμ μ£Όλ©΄ λμ΄λ€. | ||
|
||
``` | ||
10 | ||
/ \ | ||
5 20 | ||
/ \ | ||
15 30 | ||
``` | ||
|
||
리ν λ ΈλμΈ 15λ₯Ό μμ νλ©΄ λμ΄λ€. | ||
|
||
``` | ||
10 | ||
/ \ | ||
5 20 | ||
/ \ | ||
null 30 | ||
``` | ||
|
||
## Case 2) μμ ν λ Έλκ° μμ λ Έλλ₯Ό ν κ° κ°μ§κ³ μλ κ²½μ° | ||
|
||
μμμ΄ 1κ°μΈ λ Έλλ₯Ό μμ ν κ²½μ°, μμ ν λ Έλλ₯Ό μμμ΄ λ체νλ©΄ λλ€. | ||
|
||
``` | ||
10 | ||
/ \ | ||
5* 20 | ||
/ \ | ||
15 30 | ||
``` | ||
|
||
10μ μμ ν κ²½μ°, 10μ μμμΈ 5κ° 10μ μ리λ₯Ό λ체νλ€. | ||
|
||
``` | ||
5 | ||
/ \ | ||
null 20 | ||
/ \ | ||
15 30 | ||
``` | ||
|
||
Case 1 κ³Ό Case 2 λ κ°λ¨νλ€. | ||
μ΄μ Case 3 λ₯Ό μ΄ν΄λ³΄κΈ° μμ successor μ predecessor μ λν΄ μμ보μ. | ||
|
||
## Successor μ Predecessor | ||
|
||
BST μμ Successor μ Predecessor λ λ€μκ³Ό κ°μ΄ μ μνλ€. | ||
|
||
- Successor: μμ ν λ Έλμ μ€λ₯Έμͺ½ μλΈ νΈλ¦¬μμ κ°μ₯ μμ λ Έλ | ||
- Predecessor: μμ ν λ Έλμ μΌμͺ½ μλΈ νΈλ¦¬μμ κ°μ₯ ν° λ Έλ | ||
|
||
``` | ||
10 | ||
/ \ | ||
5 20 | ||
/ \ / \ | ||
3 15 18 30 | ||
``` | ||
|
||
λ Έλ 10μ `Successor` λ λ Έλ 15 μ΄λ€. | ||
λ Έλ 10μ `Predecessor` λ λ Έλ 5 μ΄λ€. | ||
|
||
μ΄μ Case 3 μ μ΄ν΄λ³΄μ. | ||
|
||
## Case 3) μμ ν λ Έλκ° μμ λ Έλλ₯Ό λ κ° κ°μ§κ³ μλ κ²½μ° | ||
|
||
- μμ ν λ Έλμ μμμ΄ 2κ°μΈ κ²½μ°, μμ ν λ Έλλ₯Ό Successor λλ Predecessor λ‘ λ체νλ€. | ||
|
||
Successor λ‘ μ€λͺ νκ² λ€. | ||
|
||
``` | ||
10 | ||
/ \ | ||
5 20 | ||
/ \ / \ | ||
3 15 18* 30 | ||
``` | ||
|
||
μ νΈλ¦¬μμ 10μ μμ ν κ²½μ°, Successor λ ΈλμΈ 18λ‘ λ체νλ€. | ||
|
||
``` | ||
18 | ||
/ \ | ||
5 20 | ||
/ \ \ | ||
3 15 30 | ||
``` | ||
|
||
μΈλ― 보기μ λ³κ±° μμ΄ λ³΄μΌ μ μμ§λ§, μ μμκ° μμμ κ°μ§κ³ μλ κ²½μ°λ κ³ λ €ν΄μ€μΌνλ€. | ||
λ€μ μμλ₯Ό 보μ | ||
|
||
``` | ||
10 | ||
/ \ | ||
5 20 | ||
/ \ / \ | ||
3 8 13* 30 | ||
\ | ||
15 | ||
/ \ | ||
14 16 | ||
``` | ||
|
||
μμ λμΌνκ² 10μ μμ νκ³ , 13μ Successor λ‘ λ체νλ€. | ||
|
||
``` | ||
13* | ||
/ \ | ||
5 20 | ||
/ \ / \ | ||
3 8 null 30 | ||
\ | ||
15 | ||
/ \ | ||
14* 16 | ||
``` | ||
|
||
13μ μλ¦¬κ° λΉμμΌλ―λ‘, 13μ μ리λ₯Ό 15λ‘ λ체νλ€. | ||
|
||
``` | ||
13 | ||
/ \ | ||
5 20 | ||
/ \ / \ | ||
3 8 15 30 | ||
/ \ | ||
14 16 | ||
``` |
Oops, something went wrong.