Secara intuitif, "pohon seimbang" harus pohon di mana sub-pohon kiri dan kanan di setiap node harus memiliki "kurang lebih sama" jumlah node.
Tentu saja, ketika kita berbicara tentang pohon merah-hitam * (lihat definisi di akhir) yang seimbang, kita benar-benar berarti bahwa mereka adalah tinggi badan seimbang dan dalam arti bahwa, mereka seimbang.
Misalkan kita mencoba memformalkan intuisi di atas sebagai berikut:
Definisi: Pohon Biner disebut -balanced, dengan , jika untuk setiap simpul , ketidaksamaan0 ≤ μ ≤ 1 N
memegang dan untuk setiap , ada beberapa simpul yang gagal pernyataan di atas. adalah jumlah node di sub-pohon kiri danadalah jumlah node di bawah pohon dengan sebagai root (termasuk root).| N L | N | N | N
Saya percaya, ini disebut pohon dengan bobot seimbang dalam beberapa literatur tentang topik ini.
Satu dapat menunjukkan bahwa jika pohon biner dengan node adalah -balanced (untuk konstanta ), maka ketinggian pohon adalah , sehingga mempertahankan pencarian yang bagus properti.μ μ > 0 O ( log n )
Jadi pertanyaannya adalah:
Apakah ada beberapa sedemikian rupa sehingga setiap pohon merah-hitam yang cukup besar adalah seimbang?μ
Definisi pohon Merah-Hitam yang kami gunakan (dari Pengantar ke Algoritma oleh Cormen et al):
Pohon pencarian biner, di mana setiap node berwarna merah atau hitam dan
- Akar hitam
- Semua NULL node berwarna hitam
- Jika simpul berwarna merah, maka kedua anaknya berwarna hitam.
- Untuk setiap node, semua jalur dari node ke node NULL keturunan memiliki jumlah yang sama dari node hitam.
Catatan: kami tidak menghitung node NULL dalam definisi -seimbang di atas. (Meskipun saya percaya itu tidak masalah jika kita melakukannya).