Red Black Tree
Red Black Tree merupakan sebuah contoh Balanced BST dengan ciri :
- Setiap node memiliki warna antara hitam dan merah
- Root selalu hitam
- Node eksternal adalah hitam
- Node merah tidak boleh mempunyai anak merah
- Jumlah node hitam sama dari root ke node eksternal
Insertion
Terdapat dua jenis insertion, yaitu saat pamannya hitam (Black Uncle) dan pamannya merah (Red Uncle).
Black Uncle :
apabila node yang baru dimasukkan mempunyai paman berwarna hitam, maka dapat diselesaikan dengan single rotation dan tukar warna parent dengan siblingnya.
Red Uncle :
apabila node yang baru dimasukkan mempunyai paman berwarna merah, maka dapat diselesaikan dengan penukaran warna antara parent dan siblingnya dengan grandparent.
Deletion
Deletion pada RBT sama seperti deletion pada BST. Ada beberapa kasus dalam deletion :
- Apabila node yang ingin dihapus berwarna merah, langsung dihapus saja
- Apabila node yang ingin dihapus berwarna hitam, apabila ia mempunyai anak berwarna merah, hapus node hitam tersebut dan ganti warna node anaknya menjadi hitam.
- Apabila node dengan parentnya hitam (double black) dan mempunyai keponakan merah maka harus dilakukan single rotation atau double rotation
- Apabila double black memiliki sibling merah maka dilakukan rotasi dan recoloring
2-3 Tree
2-3 Tree adalah sebuah tree dimana setiap node memiliki setidaknya 2 children dan satu data elemen atau tiga children dan dua data elemen. Leaf tidak memiliki children, tetapi memiliki satu atau dua data elemen(seperti external node pada RBT). 2-3 Tree bukanlah Binary Search Tree.
Syarat 2-3 Tree :
- Semua leaf berada pada level yang sama
- Data tersimpan terurut