Red Black Tree
Red Black Tree adalah bentuk kembangan dari Binary Search Tree. Red Black Tree seperti namanya didalam tree terdapat dua macam node yaitu node merah dan node hitam. Didalam Red Black Tree terdapat satu nama baru yaitu Uncle. Uncle ini adalah suatu node yang berdada pada baris yang sama dengan parent dari tree tertentu. Red Black Tree juga memiliki beberapa ciri-ciri yang membedakannya dari AVL Tree, yaitu:
- Root selalu berwarna hitam; misal berubah warna menjadi merah tetap dihitamkan
- Node yang baru dimasukkan harus berwarna merah
- Node merah memiliki dua anak yaitu node berwarna hitam
- Memiliki external node yang berwarna hitam
Didalam Red Black Tree terdapat dua proses yang dapat dilakukan, yaitu:
Insertion
Cara Insert di Red Black Tree mirip seperti pada Binary Search Tree tetapi ada peraturan baru yaitu, jika Parent berwarna merah, anaknya tidak boleh merah.
Berikut adalah cara menyelesaikan masalah jika 2 node merah bertemu:

Caranya pertama adalah melihat uncle dari node tersebut. Jika uncle dari node tersebut berwarna merah maka hitamkan uncle dan parent dari node tersebut. Sedangkan jika unclenya berwarna hitam maka lakukan proses berikut:
Deletion
Cara deletion pada Red Black Tree juga sama seperti BST tetapi karena ada peraturan khusus dari Red Black Tree maka jika terjadi kesalahan harus diubah. Berikut adalah kemungkinan yang mungkin terjadi saat deletion :
- Node yang di delete berwarna merah dan merupakan node leaf. Maka langsung saja hapus node tersebut
- Terjadi double black dimana sibling dari node tersebut berwarna merah. Maka berikut adalah proses yang dilakukan:
- Terjadi double black dimana sibling berwarna hitam. Maka berikut adalh proses yang dilakukan:
- Terjadi double black dimana sibling hitam dan anak dari node sibling berwarana merah. Maka berikut adalah proses yang dilakukan:
2-3 Tree
2-3 Tree adalh BST yang memiliki node yang berbeda. Berikut adalah contoh dari 2-3 Tree:
Didalam 2-3 Tree terdapat beberapa peraturan yang dapat membentuk 2-3 Tree yaitu:
- Root lepas dari aturan
- Jika parent terdapat
n value maka anaknya harus berjumlah
n+1
- Didalam deletion jika terbentuk jumlah value pada node yang berjumlah ganjil maka node yang memiliki value ditengah akan dilempar ke atas.
- Dan masih banyak lagi.