Bu cevap, bazı yorumlarımı soruya birleştiriyor ve genişletiyor.
Kırmızı-siyah ağaçlardaki subrange işlemi en kötü O (log n) zamanında gerçekleştirilebilir; burada n, orijinal ağaçtaki eleman sayısıdır. Ortaya çıkan ağaç bazı düğümleri orijinal ağaçla paylaşacağından, bu yaklaşım yalnızca ağaçlar değiştirilemezse (veya ağaçlar değiştirilebilir ancak orijinal ağaca artık ihtiyaç duyulmuyorsa) uygundur.
İlk olarak alt aralık işleminin iki bölünmüş işlem tarafından uygulanabileceğine dikkat edin. Burada bölme işlemi kırmızı-siyah bir ağaç T ve bir x anahtarını alır ve iki L ve R ağacı üretir, öyle ki L, x'den küçük T elemanlarını ve R, X'ten büyük T elemanlarını içerir. Bu nedenle, şimdi amacımız bölünmüş işlemi en kötü O (log n) zamanında kırmızı-siyah ağaçlara uygulamaktır.
O (log n) zamanında kırmızı-siyah ağaçlarda bölünme işlemini nasıl gerçekleştiririz? İyi bilinen bir yöntem olduğu ortaya çıktı. (Bilmiyordum, ama veri yapılarının uzmanı değilim.) İki L ve R ağacını alan birleştirme işlemini düşünün , böylece L'deki her değer R'deki her değerden daha az olacak ve tüm Birleştirme işlemi en kötü zaman O (| r L Rr R | +1) içinde uygulanabilir, burada r L ve r Rsırasıyla L ve R dereceleridir (yani, kökten her bir yaprağa giden yolda siyah düğümlerin sayısı). Bölme işlemi, birleştirme işlemi O (log n) süreleri kullanılarak gerçekleştirilebilir ve toplam en kötü durum süresi hala bir teleskop toplamı dikkate alınarak O (log n) 'dir.
Tarjan'ın bir kitabının 4.1 ve 4.2 bölümleri [Tar83], kırmızı-siyah ağaçlarda birleştirme ve ayrık işlemlerin en kötü zamanda O nasıl uygulanacağını açıklar (log n). Bu uygulamalar orijinal ağaçları yok eder, ancak düğümleri kopyalamak yerine kopyalayarak onları değiştirilemez, işlevsel uygulamalara dönüştürmek kolaydır.
Bir yan not olarak, Objektif Caml'ın Set ve Harita modülleri , (değiştirilemez) dengeli ikili arama ağaçlarındaki bölünmüş işlemi ve diğer standart işlemleri sağlar. Kırmızı-siyah ağaçlar kullanmasalar da (sol yükseklik ve sağ yüksekliğin en fazla 2 farklı olduğu kısıtlamasıyla dengeli ikili arama ağaçları kullanırlar), uygulamalarına bakmak da yararlı olabilir. İşte Set modülünün uygulanması .
Referanslar
[Tar83] Robert Endre Tarjan. Veri Yapıları ve Ağ Algoritmaları . CBMS-NSF Uygulamalı Matematik Bölgesel Konferans Serisi Cilt 44 , SIAM, 1983.