लाल-काला ट्री

अभिकलित्र विज्ञान में, लाल-काले ट्री एक विशेष द्विभाजी अन्वेषण ट्री डेटा संरचना है जो तीव्रता से भंडारण और क्रमित की गई जानकारी की पुनर्प्राप्ति के लिए जाना जाता है और यह आश्वासन देता है कि संचालन एक ज्ञात समय के भीतर पूर्ण हो जाएगा। अन्य स्व-संतुलन द्विभाजी अन्वेषण ट्री की तुलना में, लाल-काले ट्री में नोडओं में "रंग" नामक एक अतिरिक्त बिट होता है जो "लाल" और "काले" का प्रतिनिधित्व करता है जिसका उपयोग ट्री को पुन: व्यवस्थित करते समय यह सुनिश्चित करने के लिए किया जाता है कि यह सदैव लगभग संतुलित रहता है।

जब ट्री को संशोधित किया जाता है, तो नए ट्री को पुन: व्यवस्थित किया जाता है और रंग गुणों को पुनः स्थापित करने के लिए "पुनः रंगा" जाता है जो कि सबसे खराब स्थिति में ट्री कितना असंतुलित हो सकता है,उसे रोकता है। गुणों को इस प्रकार रूपांकित किया गया है कि यह पुनर्व्यवस्थित करना और पुनः रंगना कुशलतापूर्वक किया जा सकता है।

(पुनः)संतुलन सही नहीं है, परन्तु बड़े O समय $$O(\log n)$$ में अन्वेषण की प्रत्याभूति देता है, जहाँ $$n$$ ट्री में प्रविष्टियों (या कुंजियों) की संख्या है। ट्री को पुनर्व्यवस्थित करने और पुन: रंगने के साथ-साथ, $$O(\log n)$$ समय को सम्मिलित करने और हटाने की क्रिया भी की जाती है।

प्रत्येक नोड के रंग को पथानुसरण करने के लिए प्रति नोड केवल एक बिट जानकारी की आवश्यकता होती है क्योंकि केवल दो रंग होते हैं। ट्री में लाल-काले ट्री होने के कारण विशिष्ट कोई अन्य डेटा सम्मिलित नहीं है, इसलिए इसकी मेमोरी पदचिन्ह उत्कृष्ट (बिना रंग वाले) द्विभाजी अन्वेषण ट्री के लगभग समान है। कुछ स्थितियों में, अतिरिक्त जानकारी को बिना किसी अतिरिक्त मेमोरी लागत के संग्रहीत किया जा सकता है।

इतिहास
1972 में, रूडोल्फ बायर ने एक डेटा संरचना का आविष्कार किया जो B-ट्री की एक विशेष अनुक्रम-4 अवस्था थी। इन ट्रीज ने समान संख्या में नोडओं के साथ द्रुम से पर्ण तक सभी पथों को बनाए रखा, जिससे पूर्णतया संतुलित ट्री बने। हालाँकि, वे द्वयी अन्वेषण ट्री नहीं थे। बायर ने अपने पत्र में उन्हें "सममित द्वयी बी-ट्री" कहा और बाद में वे 2-3-4 ट्री या केवल 2-4 ट्री के रूप में लोकप्रिय हो गए।

1978 के एक पत्र में, संतुलित ट्रीज़ के लिए एक द्विवर्णी रूपरेखा, लियोनिदास जे. गुइबास और रॉबर्ट सेडगेविक (अभिकलित्र वैज्ञानिक) ने सममित द्वयी बी-ट्री से लाल-काले ट्री की उत्पत्ति की। लाल रंग इसलिए चुना गया क्योंकि यह प्रतिलिपि पीआरएसी में कार्य करने के पर्यन्त लेखकों के लिए उपलब्ध रंगीन लेजर मुद्रक द्वारा निर्मित सबसे अच्छा दिखने वाला रंग था। गुइबास की एक अन्य प्रतिक्रिया में कहा गया है कि यह ट्री को चित्रित करने के लिए उनके पास उपलब्ध लाल और काले लेखनियों के कारण था।

1993 में, अर्ने एंडर्सन ने सम्मिलित करने और हटाने के संचालन को सरल बनाने के लिए दाएं झुकाव वाले ट्री का विचार प्रस्तुत किया।

1999 में, क्रिस ओकासाकी ने दर्शाया कि निविष्ट संचालन को पूर्णतया कार्यात्मक कैसे बनाया जाए। इसके संतुलन कार्य को केवल 4 असंतुलित स्थितियों और एक व्यतिक्रम संतुलित स्थितियों की ध्यान रखने की आवश्यकता है।

मूल कलन विधियों में 8 असंतुलित स्थितियों का उपयोग किया गया था, परन्तु कॉर्मेन एट अल. (2001) इसे घटाकर 6 असंतुलित स्थिति कर दिया। सेडगेविक ने दर्शाया कि निविष्ट संचालन को जावा (प्रोग्रामिंग भाषा) कोड की केवल 46 पंक्तियों में अनुप्रयुक्त किया जा सकता है। 2008 में, सेडगेविक ने एंडर्सन के विचार का लाभ उठाते हुए बाएं झुकाव वाले लाल-काले ट्री का प्रस्ताव रखा, जिसने सम्मिलित करने और हटाने के संचालन को सरल बना दिया। सेडगेविक ने मूल रूप से ऐसे नोडओं की अनुमति दी थी जिनके दो बच्चे लाल हैं, जिससे उनके ट्री 2-3-4 ट्री की तरह हो गए, परन्तु बाद में यह प्रतिबंध जोड़ा गया, जिससे नए ट्री 2-3 ट्री की तरह बन गए। सेडगेविक ने निविष्ट कलन विधि को केवल 33 पंक्तियों में अनुप्रयुक्त किया, जिससे कोड की उनकी मूल 46 पंक्तियाँ काफी छोटी हो गईं।

शब्दावली
लाल-काले ट्री एक विशेष प्रकार का द्विभाजी अन्वेषण ट्री है, जिसका उपयोग अभिकलित्र विज्ञान में तुलनीय डेटा के खंडों को व्यवस्थित करने के लिए किया जाता है, जैसे कि पाठ के खंड या संख्याएं (उदाहरण के लिए आंकड़े 1 और 2 में संख्याएं) है। कुंजी और/या डेटा ले जाने वाले नोडओं को प्रायः "आंतरिक नोड" कहा जाता है, परन्तु इसे बहुत विशिष्ट बनाने के लिए उन्हें इस आलेख में गैर-शून्य नोड भी कहा जाता है।

लाल-काले ट्रीज की पर्ण नोड (चित्र 1 में शून्य) में कुंजी या डेटा नहीं होता है। इन पर्णो को अभिकलित्र मेमोरी में स्पष्ट व्यक्ति होने की आवश्यकता नहीं है: एक अशक्त संकेतक - जैसा कि सभी द्वयी ट्री डेटा संरचनाओं में होता है - इस तथ्य को कोडित कर सकता है कि (जनक) नोड में इस स्थिति में कोई संतान नोड नहीं है। फिर भी, ट्री में अपनी स्थिति के अनुसार, ये वस्तुएं अन्य नोड के संबंध में हैं जो RB-संरचना के लिए प्रासंगिक हैं, इसमें माता-पिता, भाई-बहन (अर्थात, माता-पिता का दूसरा बच्चा), चाचा, यहां तक ​​​​कि हो सकते हैं भतीजा नोड; और बच्चा हो सकता है—परन्तु किसी अन्य नोड का अभिभावक कभी नहीं हो सकता है।

पथ के इन अंत वस्तुओं को "रंग" का श्रेय देना वास्तव में आवश्यक नहीं है, क्योंकि  या   है स्थिति   स्थिति से निहित है (यह टिप्पणी भी देखें)।

चित्र 2 इन शून्य पर्णो के बिना वैचारिक रूप से वही लाल-काले ट्री दर्शाता है। पथ की समान धारणा पर पहुंचने के लिए, किसी को यह ध्यान देना चाहिए कि उदाहरण के लिए, 3 पथ नोड 1 के माध्यम से चलते हैं, अर्थात् 1 के माध्यम से एक पथ और 1दाएँ के माध्यम से 2 जोड़े गए पथ, अर्थात् 6बाएँ और 6दाएँ के माध्यम से पथ है। इस तरह, पथों के ये सिरे नए नोड डालने के लिए संलगनी बिन्दु भी हैं, जो पूर्णतया चित्र 1 के शून्य पर्णो के बराबर हैं।

इसके बजाय, निष्पादन समय की सीमांत राशि बचाने के लिए, इन (संभवतः कई) शून्य पर्णो को एक अद्वितीय (और काले) प्रहरी नोड (मान शून्य के संकेतक के बजाय) के संकेतक के रूप में अनुप्रयुक्त किया जा सकता है।

निष्कर्ष के रूप में, तथ्य यह है कि एक बच्चा उपस्थित नहीं है (एक सत्य नोड नहीं है, इसमें डेटा नहीं है) सभी घटनाओं में एक ही शून्य संकेतक द्वारा या एक प्रहरी नोड के लिए एक ही संकेतक के रूप में निर्दिष्ट किया जा सकता है। इस सम्पूर्ण लेख में, किसी भी विकल्प को शून्य नोड कहा जाता है और इसका स्थिर मान  है।

किसी नोड की काली गहराई को द्रुम से उस नोड तक काले नोड की संख्या (अर्थात काले पूर्वजों की संख्या) के रूप में परिभाषित किया गया है। लाल-काले ट्री की काली ऊंचाई द्रुम से पर्णो तक किसी भी पथ में काले नोड की संख्या है, जो, आवश्यकता 4 के अनुसार, स्थिर है (वैकल्पिक रूप से, इसे किसी भी पर्ण नोड की काली गहराई के रूप में परिभाषित किया जा सकता है)। किसी नोड की काली ऊँचाई उसके द्वारा द्रुमित उप-ट्री की काली ऊँचाई है। इस आलेख में, शून्य नोड की काली ऊंचाई 0 पर निर्धारित की जाएगी, क्योंकि इसका उप-ट्री रिक्त है जैसा कि चित्र 2 में सुझाया गया है और इसकी ट्री की ऊंचाई भी 0 है।

गुणधर्म
द्वयी अन्वेषण ट्री पर लगाई गई आवश्यकताओं के अलावा निम्नलिखित को लाल-काले ट्री द्वारा संतुष्ट किया जाना चाहिए:


 * 1) प्रत्येक नोड या तो लाल या काले है।
 * 2) सभी शून्य नोड (चित्र 1) को काला माना जाता है।
 * 3) लाल नोड में लाल बच्चा नहीं होता है।
 * 4) किसी दिए गए नोड से उसके किसी भी वंशज शून्य नोड तक का प्रत्येक पथ समान संख्या में काले नोड से होकर गुजरता है।
 * 5) (निष्कर्ष) यदि नोड N में बिल्कुल एक बच्चा है, तो यह एक लाल बच्चा होना चाहिए, क्योंकि यदि यह काला होता, तो इसके शून्य वंशज N के शून्य बच्चे की तुलना में एक अलग काली गहराई पर बैठेंगे, जो आवश्यकता 4 का उल्लंघन करेगा।

कुछ लेखक, उदाहरण के लिए: कॉर्मेन और अन्य, पांचवीं आवश्यकता के रूप में अनुरोध करें कि द्रुम काली है; परन्तु मेहलहॉर्न और सैंडर्स या सेडगेविक और वेन नहीं है। चूँकि द्रुम को सदैव लाल से काले में परिवर्तित किया जा सकता है, इस नियम का विश्लेषण पर बहुत कम प्रभाव पड़ता है। यह आलेख इसे भी छोड़ देता है, क्योंकि यह पुनरावर्ती कलन विधियों और प्रमाणों को थोड़ा विक्षुब्ध करता है।

उदाहरण के तौर पर, प्रत्येक पूर्ण द्वयी ट्री जिसमें केवल काले नोड होते हैं, एक लाल-काला ट्री होता है।

केवल पठनीय कलन विधि, जैसे अन्वेषण या ट्री पथक्रमण, किसी भी आवश्यकता को प्रभावित नहीं करते हैं। इसके विपरीत, संशोधित संचालन सम्मिलित और हटाते हैं, आवश्यकताओं 1 और 2 को सरलता से बनाए रखते हैं, परन्तु अन्य आवश्यकताओं के संबंध में, आवश्यकता 3 के उल्लंघन से बचने के लिए कुछ अतिरिक्त प्रयास किए जाने चाहिए, जिसे लाल-उल्लंघन कहा जाता है, या आवश्यकता 4, काला-उल्लंघन कहा जाता है।

आवश्यकताएँ लाल-काले ट्रीज के एक महत्वपूर्ण गुणधर्म को अनुप्रयुक्त करते हैं: द्रुम से सबसे दूर के पर्ण तक का रास्ता द्रुम से निकटतम पर्ण तक के रास्ते से दोगुने से अधिक लंबा नहीं होता है। परिणाम यह है कि ट्री ऊंचाई-संतुलित द्विभाजी अन्वेषण ट्री है। चूंकि मान डालने, हटाने और $$h$$ ट्री की खोजने जैसे कार्यों के लिए ऊंचाई के अनुपात में सबसे खराब स्थिति वाले समय की आवश्यकता होती है, ऊंचाई पर यह ऊपरी सीमा लाल-काले ट्रीज को सबसे खराब स्थिति में कुशल होने की अनुमति देती है, अर्थात् संख्या में लघुगणक $$n$$ प्रविष्टियों में से,अर्थात, $h \in O(\log n)$, जो सामान्य द्विभाजी अन्वेषण ट्री के स्थिति में नहीं है। गणितीय प्रमाण के लिए सीमा का प्रमाण अनुभाग देखें।

लाल-काले ट्री, सभी द्विभाजी अन्वेषण ट्री की तरह, अपने तत्वों की काफी कुशल अनुक्रमिक अधिगमन (उदाहरण के लिए अनुक्रम में पथक्रमण, अर्थात बाएं-मूल-दाएं क्रम में) की अनुमति देते हैं। परन्तु वे द्रुम से पर्ण तक पथक्रमण के माध्यम से स्पर्शोन्मुख रूप से इष्टतम प्रत्यक्ष अभिगम का भी समर्थन करते हैं, जिसके परिणामस्वरूप $$O(\log n)$$ अन्वेषण समय है।

क्रम 4 के B-ट्री की सादृश्यता
एक लाल-काले ट्री संरचना में क्रम 4 के B-ट्री के समान होता है, जहां प्रत्येक नोड में 1 और 3 मान और (तदनुसार) 2 और 4 संतान संकेतक के मध्य हो सकते हैं। ऐसे B-ट्री में, प्रत्येक नोड में लाल-काले ट्री के काले नोड में मान से मेल खाने वाला केवल एक मान होगा, एक ही नोड में इसके पहले और/या बाद में एक वैकल्पिक मान होगा, दोनों लाल-काले ट्री एक समान लाल नोड से मेल खाएंगे।

इस तुल्यता को देखने का एक तरीका लाल-काले ट्री के आलेखीय प्रतिनिधित्व में लाल नोड को ऊपर ले जाना है, ताकि वे एक क्षैतिज गुच्छ बनाकर, अपने मूल काले नोड के साथ क्षैतिज रूप से संरेखित हों। बी-ट्री में, या लाल-काले ट्री के संशोधित आलेखीय प्रतिनिधित्व में, सभी पर्ण नोड एक ही गहराई पर हैं।

लाल-काले ट्री तब संरचनात्मक रूप से क्रम 4 के B-ट्री के बराबर होता है, जिसमें 3 मानों की अधिकतम क्षमता के साथ प्रति गुच्छ 33% मानों का न्यूनतम भरण कारक होता है।

हालाँकि, यह B-ट्री प्रकार अभी भी लाल-काले ट्री की तुलना में अधिक सामान्य है, क्योंकि यह लाल-काले ट्री के रूपांतरण में अस्पष्टता की अनुमति देता है - क्रम 4 के समकक्ष B-ट्री से कई लाल-काले ट्री का उत्पादन किया जा सकता है (चित्र 3 देखें)। यदि B-ट्री गुच्छ में केवल 1 मान है, तो यह न्यूनतम, काला है और इसमें दो संतान संकेतक हैं। यदि किसी गुच्छ में 3 मान हैं, तो केंद्रीय मान काला होगा और उसके किनारों पर संग्रहीत प्रत्येक मान लाल होगा। हालाँकि, यदि गुच्छ में दो मान हैं, तो उनमें से कोई भी लाल-काले ट्री में काला नोड बन सकता है (और दूसरा लाल होगा)।

तो अनुक्रम-4 B-ट्री यह नहीं बनाए रखता है कि प्रत्येक गुच्छ में कौन सा मान सम्पूर्ण गुच्छ के लिए मूल काला ट्री है और उसी गुच्छ में अन्य मानों का जनक है। इसके बावजूद, लाल-काले ट्री पर परिचालन समय की स्थिति में अधिक किफायती है क्योंकि आपको मानों के सदिश को बनाए रखने की आवश्यकता नहीं है। यदि मानों को संदर्भ द्वारा संग्रहीत करने के बजाय सीधे प्रत्येक नोड में संग्रहीत किया जाता है तो यह महंगा हो सकता है। हालाँकि, बी-ट्री नोड समष्टि में अधिक किफायती हैं क्योंकि आपको प्रत्येक नोड के लिए रंग विशेषता को संग्रहीत करने की आवश्यकता नहीं है। इसके बजाय, आपको यह जानना होगा कि गुच्छ सदिश में किस खाँच का उपयोग किया जाता है। यदि मान संदर्भ द्वारा संग्रहीत किए जाते हैं, उदाहरण के लिए: वस्तुओं, शून्य संदर्भों का उपयोग किया जा सकता है और इसलिए गुच्छ को एक सदिश द्वारा दर्शाया जा सकता है जिसमें मान संकेतकों के लिए 3 खाँच और ट्री में बाल संदर्भों के लिए 4 खाँच होते हैं। उस स्थिति में, B-ट्री मेमोरी में अधिक सघन हो सकते है, जिससे डेटा स्थानीयता में सुधार हो सकता है।

वही सादृश्य बड़े अनुक्रम वाले B-ट्री के साथ बनाया जा सकता है जो संरचनात्मक रूप से रंगीन द्वयी ट्री के बराबर हो सकते हैं: आपको केवल अधिक रंगों की आवश्यकता है। मान लीजिए कि आप नीला जोड़ते हैं, तो नीला-लाल-काला ट्री लाल-काले ट्री की तरह परिभाषित होता है परन्तु अतिरिक्त बाधा के साथ कि पदानुक्रम में कोई भी दो क्रमिक नोड नीले नहीं होंगे और सभी नीले नोड लाल नोड के बच्चे होंगे, तो यह एक B-ट्री के बराबर हो जाता है जिसके गुच्छ में निम्नलिखित रंगों में अधिकतम 7 मान होंगे: नीला, लाल, नीला, काला, नीला, लाल, नीला (प्रत्येक गुच्छ के लिए, अधिकतम 1 काले नोड, 2 लाल नोड और 4 नीले नोड) होंगे।

मानों की मध्यम मात्रा के लिए, रंगीन द्वयी ट्री में सम्मिलन और विलोपन बी-ट्री की तुलना में तीव्र होते हैं क्योंकि रंगीन ट्री नोड के प्रत्येक क्षैतिज गुच्छ के भरण कारक को अधिकतम करने का प्रयास नहीं करते हैं (रंगीन द्वयी में केवल न्यूनतम भरण कारक की प्रत्याभूति होती है) ट्री, समूहों के विभाजन या समागमों की संख्या को सीमित करते हुए)। B-ट्री, घूर्णन करने के लिए तीव्र होंगे (क्योंकि रंगीन द्वयी ट्री में कई अलग-अलग नोड के बजाय घूर्णन प्रायः एक ही गुच्छ के भीतर होंगे)। हालाँकि, बड़ी मात्रा में भंडारण के लिए, B-ट्री बहुत तीव्र होंगे क्योंकि वे एक ही गुच्छ में कई बच्चों को समूहित करके अधिक सघन होंगे जहाँ उन्हें स्थानीय रूप से पहुँचा जा सकता है।

समूहों के औसत भरण कारकों को बढ़ाने के लिए B-ट्री में संभव सभी अनुकूलन समतुल्य बहुरंगी द्वयी ट्री में संभव हैं। विशेष रूप से, संरचनात्मक रूप से समतुल्य B-ट्री में औसत भरण कारक को अधिकतम करना गैर-काले नोड की संख्या में वृद्धि करके, बहुरंगी ट्री की कुल ऊंचाई को कम करने के समान है। सबसे खराब स्थिति तब होती है जब रंगीन द्वयी ट्री में सभी नोड काले होते हैं, सबसे अच्छी स्थिति तब होती है जब उनमें से केवल एक तिहाई काले होते हैं (और अन्य दो तिहाई लाल नोड होते हैं)।

अनुप्रयोग और संबंधित डेटा संरचनाएँ
लाल-काले ट्री सम्मिलन समय, विलोपन समय और अन्वेषण समय के लिए सबसे खराब स्थिति की प्रत्याभूति देते हैं। यह न केवल उन्हें वास्तविक समय अनुप्रयोगों जैसे समय-संवेदनशील अनुप्रयोगों में मूल्यवान बनाता है, बल्कि यह उन्हें अन्य डेटा संरचनाओं में मूल्यवान इमारती खंड बनाता है जो सबसे खराब स्थिति की प्रत्याभूति प्रदान करते हैं; उदाहरण के लिए, अभिकलनात्मक ज्यामिति में उपयोग की जाने वाली कई डेटा संरचनाएं लाल-काले ट्रीज पर आधारित हो सकती हैं और वर्तमान लिनक्स कर्नेल और ईपोल प्रणाली कॉल कार्यान्वयन में उपयोग किए जाने वाले पूर्णतया निष्पक्ष अनुसूचक लाल-काले ट्रीज का उपयोग करता है।

एवीएल ट्री एक अन्य संरचना $$O(\log n)$$ खोज, सम्मिलन, और निष्कासन समर्थन का करता है। एवीएल ट्रीज का रंग लाल-काला हो सकता है, इस प्रकार ये आरबी ट्री का एक उपसमूह हैं। सबसे खराब स्थिति वाली ऊंचाई आरबी ट्रीज की सबसे खराब स्थिति वाली ऊंचाई का 0.720 गुना है, इसलिए एवीएल ट्री अधिक कठोरता से संतुलित होते हैं। 79 रनों में यथार्थवादी परीक्षण स्थितियों के साथ बेन पफैफ के प्रदर्शन माप में एवीएल से आरबी अनुपात 0.677 और 1.077 के मध्य, माध्यिका 0.947 और ज्यामितीय माध्य 0.910 पाया गया। डब्ल्यूएवीएल ट्रीज का प्रदर्शन उन दोनों के मध्य में होता है।

लाल-काले ट्री कार्यात्मक प्रोग्रामिंग में भी विशेष रूप से मूल्यवान हैं, जहां वे सबसे सामान्य सतत डेटा संरचनाओं में से एक हैं, जिनका उपयोग सहयोगी सरणी और समूह बनाने के लिए किया जाता है जो उत्परिवर्तन के बाद पिछले संस्करणों को बनाए रख सकते हैं। लाल-काले ट्री के सतत संस्करण समय के अतिरिक्त, प्रत्येक प्रविष्टि या विलोपन के लिए $$O(\log n)$$ समष्टि की आवश्यकता होती है।

प्रत्येक 2-4 ट्री के लिए, समान क्रम में डेटा तत्वों के साथ संबंधित लाल-काले ट्री होते हैं। 2-4 ट्री पर सम्मिलन और विलोपन संचालन भी लाल-काले ट्रीज में रंग-फ़्लिपिंग और घूर्णन के बराबर हैं। यह 2-4 ट्रीज को लाल-काले ट्री के पीछे के तर्क को समझने के लिए एक महत्वपूर्ण उपकरण बनाता है और यही कारण है कि कई परिचयात्मक कलन विधि पाठ लाल-काले ट्री से ठीक पहले 2-4 ट्रीज का परिचय देते हैं, हालाँकि व्यवहार में 2-4 ट्रीज का प्रायः उपयोग नहीं किया जाता है।

2008 में, सेडगेविक ने कार्यान्वयन में स्वतंत्रता की पहले से अनिर्दिष्ट डिग्री को समाप्त करके लाल-काले ट्री का एक सरल संस्करण प्रस्तुत किया, जिसे बाएं-झुकाव वाला लाल-काला ट्री कहा जाता है। एलएलआरबी एक अतिरिक्त अपरिवर्तनीयता बनाए रखता है कि सभी लाल लिंक को सम्मिलित करने और हटाने के अतिरिक्त बाईं ओर झुकना चाहिए। संचालन के किसी भी क्रम के लिए लाल-काले ट्रीज को 2-3 ट्रीज, या 2-4 ट्रीज, के बराबर बनाया जा सकता है। 2-4 ट्रीज समदूरीकता का वर्णन 1978 में सेडगेविक द्वारा किया गया था। 2-4 ट्री के साथ, समदूरीकता को एक विभाजन के अनुरूप "रंग फ्लिप" द्वारा हल किया जाता है, जिसमें दो बच्चों के नोड का लाल रंग बच्चों को छोड़ देता है और मूल नोड में चला जाता है।

टैंगो ट्री का मूल विवरण, तीव्र खोजों के लिए अनुकूलित एक प्रकार का ट्री, विशेष रूप से अपने डेटा संरचना के भाग के रूप में लाल-काले ट्रीज का उपयोग करता है।

जावा (प्रोग्रामिंग भाषा) 8 के अनुसार, हैश तालिका को ऐसे संशोधित किया गया है कि कि अलग-अलग तत्वों को संघट्टनी हैशकोड के साथ संग्रहीत करने के लिए श्रृंखलित सूची का उपयोग करने के बजाय, एक लाल-काले ट्री का उपयोग किया जाता है। इसके परिणामस्वरूप ऐसे तत्व $$O(m)$$ से $$O(\log m)$$ को खोजने की समय जटिलता में सुधार होता है, जहाँ $$m$$ संघट्टनी हैशकोड वाले तत्वों की संख्या है।

संचालन
लाल-काले ट्री पर अन्वेषण या ट्री पथक्रमण जैसे केवल पढ़ने योग्य संचालन को द्वयी अन्वेषण ट्री के लिए उपयोग किए जाने वाले संचालन से किसी संशोधन की आवश्यकता नहीं होती है, क्योंकि प्रत्येक लाल-काले ट्री एक साधारण द्वयी अन्वेषण ट्री की एक विशेष स्थिति है। हालाँकि, सम्मिलन या निष्कासन का तत्काल परिणाम लाल-काले ट्री के गुणों का उल्लंघन कर सकता है, जिसके पुनःस्थापन को पुनर्संतुलन कहा जाता है ताकि लाल-काले ट्री स्व-संतुलन बन जाएं।सबसे खराब स्थिति में इसके लिए एक छोटी संख्या, $$O(\log n)$$ की आवश्यकता होती है। बड़े O संकेत पद्धति में, जहाँ $$n$$ ट्री में औसतन या परिशोधित वस्तुओं की संख्या $$O(1)$$ है, एक स्थिर संख्या,  रंग परिवर्तन (जो व्यवहार में बहुत तीव्र होते हैं); और तीन से अधिक ट्री चक्र नहीं (प्रविष्टि के लिए दो) है।

यदि नीचे दिया गया उदाहरण कार्यान्वयन उपयुक्त नहीं है, तो स्पष्टीकरण के साथ अन्य कार्यान्वयन बेन पफैफ के एनोटेटेड C लाइब्रेरी जीएनयू लिबाव्ल (जून 2019 तक v2.0.3) में पाए जा सकते हैं।

अन्तर्स्थापित करने और हटाने के संचालन का विवरण उदाहरण, सी++ कोड के साथ प्रदर्शित किया जाएगा, जो प्रकार परिभाषाओं, नीचे दिए गए मैक्रो और क्रमावर्तन के लिए सहायक फलन का उपयोग करता है:



प्रतिदर्श कोड और प्रविष्टि और निष्कासन के आरेख पर टिप्पणी
प्रस्ताव प्रविष्टि और निष्कासन (कुछ बहुत ही सरल स्थितियों का उल्लेख नहीं) दोनों को नोड, किनारों और रंगों के छह समूहों में विभाजित करता है, जिन्हें स्थिति कहा जाता है। प्रस्ताव में प्रविष्टि और निष्कासन दोनों के लिए, बिल्कुल एक स्थिति सम्मिलित है जो एक काले स्तर को द्रुम और पाश के समीप ले जाता है, अन्य पांच स्थितियां अपने स्वयं के ट्री को पुनर्संतुलित करते हैं। अधिक जटिल स्थितियों को एक आरेख में चित्रित किया गया है।


 * RedNode.svg एक लाल नोड और BlackNode.svg एक (गैर-शून्य) काले नोड (काली ऊंचाई ≥ 1) का प्रतीक है, RedOrBlackNode.svg गैर-शून्य नोड के लाल या काले रंग का प्रतीक है, परन्तु एक ही आरेख में एक ही रंग है। आरेखों में शून्य नोड्स का प्रतिनिधित्व नहीं किया गया है।
 * चर N वर्तमान नोड को दर्शाता है, जिसे आरेखों में N  या  N  लेबल किया गया है।
 * एक आरेख में तीन स्तम्भ और दो से चार क्रियाएं होती हैं। बायां स्तम्भ पहले पुनरावृत्ति को दर्शाता है, दायां स्तम्भ उच्च पुनरावृत्तियों को दर्शाता है, मध्य स्तम्भ किसी स्थिति के विभाजन को उसके विभिन्न कार्यों में दर्शाता है।
 * 1) क्रिया "प्रविष्टि" नोड्स के समूह को उनके रंगों के साथ दर्शाती है जो एक स्थिति को परिभाषित करती है और अधिकतर कुछ आवश्यकताओं का उल्लंघन करती है। एक नीली पट्टी वर्तमान नोड N को वलय करती है और अन्य नोड्स को N के साथ उनके संबंध के अनुसार लेबल किया जाता है।
 * 2) यदि एक घूर्णन को उपयोगी माना जाता है, तो इसे अगली क्रिया में चित्रित किया जाता है, जिसे "घूर्णन" का नाम दिया गया है।
 * 3) यदि कुछ रंग बदलना उपयोगी माना जाता है, तो इसे अगली क्रिया में चित्रित किया जाता है, जिसे रंग लेबल किया जाता है।
 * 4) यदि अभी भी सुधार की कुछ आवश्यकता है, तो स्थिति अन्य स्थितियों के कोड का उपयोग करते हैं और यह वर्तमान नोड N के पुन: समनदेशन के बाद होता है, जिसमें पुन: एक नीली वलय होती है और जिसके सापेक्ष अन्य नोड को भी पुन: समनुदेशित करना पड़ सकता है। इस क्रिया को पुन: समनुदेशित लेबल किया गया है। सम्मिलित करने और हटाने दोनों के लिए, (बिल्कुल) एक स्थिति है जो मूल के समीप एक काले स्तर को दोहराता है; तब पुन: निर्दिष्ट तारामंडल संबंधित पाश अपरिवर्तनीय को संतुष्ट करता है।
 * शीर्ष TriangleTop.svg पर एक काले वृत्त के साथ संभवतः क्रमांकित त्रिकोण एक लाल-काले उप-ट्री का प्रतिनिधित्व करता है (आवश्यकता 3 के अनुसार अपने मूल से जुड़ा हुआ) जिसकी काली ऊंचाई पुनरावृत्ति स्तर शून्य से एक के बराबर है, अर्थात, प्रथम पुनरावृत्ति में शून्य इसकी द्रुम लाल या काली हो सकती है। संभवतः क्रमांकित त्रिभुज TriangleSubtree.svg एक लाल-काले उप-ट्री का प्रतिनिधित्व करता है जिसकी काली ऊँचाई एक कम है, अर्थात, इसके मूल की दूसरी पुनरावृत्ति में काली ऊँचाई शून्य है।


 * टिप्पणी
 * सरलता के लिए, प्रतिदर्श कोड विच्छेदन का उपयोग करता है:
 * और संयोजन:
 * इस प्रकार, यह ध्यान में रखा जाना चाहिए कि  है, तो दोनों कथनों का कुल मूल्यांकन नहीं किया जाता है। फिर दोनों ही स्थितियों में   को नहीं छुआ जाता है (लघुपथन मूल्यांकन देखें)। (  मानी गई टिप्पणी आवश्यकता 2 के अनुरूप है)।
 * यदि प्रस्ताव साकार हो जाता है, तो संबंधित -विवरण बहुत कम बार घटित होंगे।
 * इस प्रकार, यह ध्यान में रखा जाना चाहिए कि  है, तो दोनों कथनों का कुल मूल्यांकन नहीं किया जाता है। फिर दोनों ही स्थितियों में   को नहीं छुआ जाता है (लघुपथन मूल्यांकन देखें)। (  मानी गई टिप्पणी आवश्यकता 2 के अनुरूप है)।
 * यदि प्रस्ताव साकार हो जाता है, तो संबंधित -विवरण बहुत कम बार घटित होंगे।

निवेशन
निवेशन नए (गैर-शून्य) नोड, मान लीजिए N, को शून्य नोड के द्वयी अन्वेषण ट्री में स्थिति पर रखकर प्रारंभ होता है, जिसकी अनुक्रम में पथक्रमण पूर्ववर्ती कुंजी नए नोड की कुंजी से कम तुलना करती है, जो बदले में इसके अनुक्रम में आनुक्रमिक कुंजी से कम तुलना करता है, प्रायः यह स्थिति निविष्ट संचालन से ठीक पहले ट्री के भीतर एक खोज का परिणाम है और इसमें एक नोड  के साथ एक दिशा   के साथ  सम्मिलित है। नया निविष्ट नोड अस्थायी रूप से रंगीन है लाल ताकि सभी पथों में पहले की तरह ही काले नोड्स की संख्या हो। परन्तु यदि इसका जनक, मान लीजिए P, भी लाल है तो यह क्रिया लाल-उल्लंघन का परिचय देती है।

निविष्ट संचालन के पुनर्संतुलन पाश में निम्नलिखित अपरिवर्तनीयता है:
 * प्रत्येक पुनरावृत्ति के प्रारम्भ में वर्तमान नोड N [[File:RedNode.svg]] (लाल) है।
 * आवश्यकता 3 संभावित अपवाद N←P के साथ सभी युग्म नोड←जनक के लिए संतुष्ट है जब P भी लाल है (N पर एक लाल-उल्लंघन)।
 * अन्य सभी गुण (आवश्यकता 4 सहित) सम्पूर्ण ट्री में संतुष्ट हैं।

सम्मिलित आरेखों पर टिप्पणी

 * आरेखों में, P का उपयोग N के माता-पिता के लिए, G का उपयोग दादा-दादी के लिए और U, N के चाचा को दर्शाएगा।
 * आरेख मूल नोड P को उसके मूल G के बाएं बच्चे के रूप में दर्शाते हैं, भले ही P का दोनों ओर होना संभव है। प्रतिदर्श कोड पार्श्व चर   के माध्यम से दोनों संभावनाओं को समाविष्ट करता है।
 * N निवेशन नोड है, परन्तु जैसे-जैसे संचालन आगे बढ़ता है अन्य नोड भी चालू हो सकते हैं (स्थिति I2 देखें)।
 * आरेख उन स्थितियों को दर्शाते हैं जहां P भी लाल, लाल-उल्लंघन है।
 * स्तम्भ x बच्चे की दिशा में परिवर्तन को इंगित करता है, अर्थात, o (बाहरी के लिए) का अर्थ है कि P और N दोनों बाएं या दोनों दाएं बच्चे हैं, जबकि i (आंतरिक के लिए) का अर्थ है कि बच्चे की दिशा P से N की ओर बदलती है।
 * स्तम्भ समूह पहले उस स्थिति को परिभाषित करता है, जिसका नाम स्तम्भ अवस्था में दिया गया है। जिससे खाली छोड़ी गई कोशिकाओं में संभावित मानों को नजरअंदाज कर दिया जाता है। इसलिए #Insert अवस्था I2 के स्थिति में प्रतिदर्श कोड N की संतान दिशाओं की दोनों संभावनाओं को समाविष्ट करता है, हालांकि संबंधित आरेख केवल एक दिखाता है।
 * सारांश में पंक्तियों को इस तरह क्रमबद्ध किया गया है कि सभी संभावित आरबी स्थितियों का समाविष्टेज आसानी से समझ में आ सके।
 * स्तम्भ रोटेशन इंगित करता है कि क्या रोटेशन पुनर्संतुलन में योगदान देता है।
 * स्तम्भ असाइनमेंट अगले चरण में प्रवेश करने से पहले एन का असाइनमेंट दिखाता है। यह संभवतः अन्य नोड पी, जी, यू के पुन: असाइनमेंट को भी प्रेरित करता है।
 * यदि अवस्था द्वारा कुछ बदला गया है, तो इसे बाद स्तम्भ समूह में दिखाया जाता है।
 * अगला स्तम्भ में एक तीर → दर्शाता है कि इस चरण के साथ पुनर्संतुलन पूर्ण हो गया है। यदि स्तम्भ बाद बिल्कुल एक स्थिति को निर्धारित करता है, तो इस स्थिति को अगले स्थिति के रूप में दिया जाता है, अन्यथा प्रश्न चिह्न होते हैं।
 * लूप अनुभाग #इन्सर्ट अवस्था I1| में समाहित है अवस्था I1 डालें और #अवस्था I2 डालें| अवस्था I2 डालें, जहां #निविष्ट अवस्था I2 में पुनर्संतुलन की समस्या बढ़ जाती है $$\Delta h=2$$ ट्री का स्तर या ट्री में 1 काला स्तर ऊंचा, इसमें दादा जी नया वर्तमान नोड एन बन जाता है। इसलिए यह अधिकतम होता है $$\tfrac{h}2$$ ट्री की मरम्मत के लिए पुनरावृत्ति के चरण (जहाँ $$h$$ ट्री की ऊंचाई है)। क्योंकि प्रत्येक चरण के साथ वृद्धि की संभावना तीव्रता से कम हो जाती है, कुल पुनर्संतुलन लागत औसतन स्थिर रहती है, वास्तव में #परिशोधन।
 * लूप की बॉडी से, अवस्था #निविष्ट अवस्था I1 अपने आप बाहर निकल जाता है और #इन्सर्ट अवस्था I4, #निविष्ट अवस्था I6, #निविष्ट अवस्था I5|I5 + I6, और #इन्सर्ट अवस्था I3 की शाखाएं बाहर निकल जाती हैं।
 * रोटेशन I6 और I5 + I6 स्थितियों में होता है - लूप के बाहर। इसलिए, कुल मिलाकर अधिकतम दो घुमाव होते हैं।

निविष्ट स्थिति I1
वर्तमान नोड का मूल P काला है, इसलिए #req3 कायम है। आवश्यकता 4 #loopInvariantI के अनुसार भी अनुप्रयुक्त होती है।

निविष्ट स्थिति I2
यदि माता-पिता पी और चाचा यू दोनों लाल हैं, तो उन दोनों को पुन: काले रंग से रंगा जा सकता है और दादा-दादी जी #req4 को बनाए रखने के लिए लाल हो जाते हैं। चूँकि माता-पिता या चाचा से होकर कोई भी रास्ता दादा-दादी से होकर गुजरना चाहिए, इन रास्तों पर काले नोड की संख्या में कोई बदलाव नहीं आया है। हालाँकि, दादा-दादी जी अब आवश्यकता 3 का उल्लंघन कर सकते हैं, यदि उसके पास लाल माता-पिता हैं। G को N में पुनः लेबल करने के बाद #loopInvariantI पूर्ण हो जाता है ताकि पुनर्संतुलन को एक काले स्तर (= 2 ट्री स्तर) पर पुनरावृत्त किया जा सके।

निविष्ट स्थिति I3
वर्तमान नोड एन ट्री की (लाल) द्रुम है, और सभी आरबी-गुण संतुष्ट हैं।
 * 1) इन्सर्ट अवस्था I2 के लिए निष्पादित किया गया है $$\tfrac{h-1}2$$ समय और अब ट्री की कुल ऊंचाई 1 गुना बढ़ गई है $$h~.$$

निविष्ट स्थिति I4
मूल P लाल और मूल है। चूँकि N भी लाल है, आवश्यकता 3 का उल्लंघन होता है। परन्तु P का रंग बदलने के बाद ट्री RB-आकार में है। ट्री की काली ऊँचाई 1 से बढ़ जाती है।

निविष्ट स्थिति I5
मूल P लाल है परन्तु चाचा U काला है। अंतिम लक्ष्य मूल नोड पी को दादा-दादी की स्थिति में घुमाना है, परन्तु यह कार्य नहीं करेगा यदि एन जी का आंतरिक पोता है (अर्थात, यदि एन जी के दाएं बच्चे का बायां बच्चा है या दाएं) G) के बाएं बच्चे का बच्चा. ए -rotation P पर वर्तमान नोड N और उसके पैरेंट P की भूमिकाओं को स्विच करता है। रोटेशन N के माध्यम से पथ जोड़ता है (वे जो 2 लेबल वाले सबट्री में हैं, आरेख देखें) और P के माध्यम से पथ हटा देता है (वे जो 4 लेबल वाले सबट्री में हैं)। परन्तु P और N दोनों लाल हैं, इसलिए #req4 संरक्षित है। स्थिति 6 में आवश्यकता 3 को बहाल किया गया है।

निविष्ट स्थिति I6
वर्तमान नोड N अब निश्चित रूप से G का बाहरी पोता (बाएँ बच्चे का बायाँ या दाएँ बच्चे का दायाँ) होना निश्चित है। अब -rotate G पर, P को G के स्थान पर रखा गया है और P को N और G का माता-पिता बनाया गया है। G काला है और उसका पूर्व बच्चा P लाल है, क्योंकि #req3 का उल्लंघन किया गया है। P और G के रंगों को बदलने के बाद परिणामी ट्री आवश्यकता 3 को पूर्ण करता है। #req4 भी संतुष्ट रहता है, क्योंकि काले G से होकर जाने वाले सभी रास्ते अब काले P से होकर गुजरते हैं। क्योंकि कलन विधि सहायक डेटा संरचना का उपयोग किए बिना और सहायक चर के लिए अतिरिक्त भंडारण स्थान की केवल थोड़ी मात्रा का उपयोग किए बिना इनपुट को बदल देता है, यह इन-प्लेस  कलन विधि है।

साधारण स्थिति
लेबल एन वर्तमान नोड को दर्शाता है कि प्रवेश पर वह नोड है जिसे हटाया जाना है।

यदि N वह द्रुम है जिसमें गैर-शून्य बच्चा नहीं है, तो इसे शून्य नोड द्वारा प्रतिस्थापित किया जाता है, जिसके बाद ट्री खाली होता है - और आरबी-आकार में।

यदि N के पास बिल्कुल एक गैर-शून्य बच्चा है, तो #con5 के अनुसार, यह एक लाल बच्चा होना चाहिए।

यदि N एक लाल नोड है, तो इसमें बिल्कुल एक गैर-शून्य बच्चा नहीं हो सकता है, क्योंकि इसे #req3 द्वारा काला होना होगा। इसके अतिरिक्त, #con5 के अनुसार इसका बिल्कुल एक काला बच्चा नहीं हो सकता। परिणामस्वरूप, लाल नोड एन बिना किसी बच्चे के है और इसे आसानी से हटाया जा सकता है।

यदि एन एक काला नोड है, तो इसमें दो लाल बच्चे, एक लाल बच्चा या कोई भी गैर-शून्य बच्चा नहीं हो सकता है। यदि N के पास एक भी लाल बच्चा है, तो बाद वाले को काले रंग से रंगने के बाद उसे इस बच्चे से बदल दिया जाता है।

यदि N के दो गैर-शून्य बच्चे हैं, तो उसके दाएँ उपट्री में न्यूनतम तत्व के लिए एक अतिरिक्त नेविगेशन (जो कि N का इन-अनुक्रम उत्तराधिकारी है, मान लीजिए) $$\text{y}$$) एन और के मध्य कोई अन्य नोड नहीं के साथ एक नोड ढूँढता है $$\text{y}$$ (जैसा कि द्वयी अन्वेषण ट्री#डिलीशन दिखाया गया है)। यह नोड $$\text{y}$$ उसका कोई बायाँ बच्चा नहीं है और इस प्रकार उसके पास अधिकतम एक गैर-शून्य बच्चा है। अगर $$\text{y}$$ एन के स्थान पर हटाया जाना है, एन और से संबंधित लाल-काला ट्री डेटा $$\text{y}$$, मैं। ।इ। दो नोड के रंग और संकेतक्स का आदान-प्रदान करना होगा। (परिणामस्वरूप, संशोधित लाल-काला ट्री पहले जैसा ही है, सिवाय इसके कि एन और के मध्य का क्रम $$\text{y}$$ उलट दिया गया है।) इस विकल्प के परिणामस्वरूप उपरोक्त अधिक सरल स्थितियों में से एक हो सकता है, परन्तु यदि $$\text{y}$$ बिना बच्चे और काले के हम पहुंचते हैं...

एक काली बिना द्रुम वाली पर्ण को हटाना
जटिल स्थिति तब होता है जब N द्रुम नहीं है, उसका रंग काला है और उसकी कोई उचित संतान नहीं है (⇔ केवल शून्य संतान)। पहले पुनरावृत्ति में, N को शून्य से बदल दिया गया है।

डिलीट कलन विधि के पुनर्संतुलन लूप में निम्नलिखित लूप अपरिवर्तनीय है:
 * At the beginning of each iteration the black height of N equals the iteration number minus one, which means that in the first iteration it is zero and that N is a true black node [[File:BlackNode.svg]]उच्चतर पुनरावृत्तियों में.
 * N से होकर जाने वाले पथों पर ब्लैक नोड की संख्या विलोपन से पहले की तुलना में एक कम है, जबकि यह अन्य सभी पथों पर अपरिवर्तित है, इसलिए यदि अन्य पथ उपस्थित हैं तो P पर #ViolB|ब्लैक-उल्लंघन होता है।
 * अन्य सभी गुण (#req3 सहित) पूरे ट्री में संतुष्ट हैं।

डिलीट डायग्राम पर नोट्स

 * नीचे दिए गए चित्र में, P का उपयोग N के माता-पिता के लिए, S का उपयोग N के भाई-बहन के लिए, C (अर्थात करीबी भतीजा) का उपयोग S के बच्चे के लिए N के समान दिशा में किया गया है, और D (जिसका अर्थ है दूर का भतीजा) ) एस के दूसरे बच्चे के लिए (एस पहले पुनरावृत्ति में शून्य नोड नहीं हो सकता है, क्योंकि इसमें काली ऊंचाई होनी चाहिए, जो इसके हटाए जाने से पहले एन की काली ऊंचाई थी, परन्तु सी और डी शून्य नोड हो सकते हैं)।
 * आरेख वर्तमान नोड N को उसके मूल P के बाएं बच्चे के रूप में दिखाते हैं, भले ही N का दोनों तरफ होना संभव है। कोड नमूने साइड वेरिएबल के माध्यम से दोनों संभावनाओं को समाविष्ट करते हैं.
 * हटाने की शुरुआत में (पहले पुनरावृत्ति में), एन हटाए जाने वाले नोड की जगह लेने वाला शून्य नोड है। क्योंकि इसका स्थान मूल में है's node is the only thing of importance, it is symbolised by NilBlue.svg(अर्थ: वर्तमान नोड एन एक शून्य नोड और बायां बच्चा है) डिलीट डायग्राम के बाएं स्तम्भ में। जैसे-जैसे कलन विधि आगे बढ़ता है, उचित नोड (काली ऊंचाई ≥ 1) भी चालू हो सकते हैं (उदाहरण देखें अवस्था #डिलीट अवस्था डी2)।
 * By counting the black bullets ([[File:BlackNode.svg]] and [[File:TriangleTop.svg]]) डिलीट आरेख में यह देखा जा सकता है कि N से होकर जाने वाले पथों में अन्य पथों की तुलना में एक गोली कम है। इसका अर्थ है पी पर काला-उल्लंघन - यदि यह उपस्थित है।
 * पहले स्तम्भ समूह में रंग समूह उस अवस्था को परिभाषित करता है, जिसका नाम अवस्था स्तम्भ में दिया गया है। जिससे खाली छोड़ी गई कोशिकाओं में संभावित मानों को नजरअंदाज कर दिया जाता है।
 * सारांश में पंक्तियों को इस तरह क्रमबद्ध किया गया है कि सभी संभावित आरबी स्थितियों का समाविष्टेज आसानी से समझ में आ सके।
 * स्तम्भ रोटेशन इंगित करता है कि क्या रोटेशन पुनर्संतुलन में योगदान देता है।
 * स्तम्भ असाइनमेंट आगामी पुनरावृत्ति चरण में प्रवेश करने से पहले एन का असाइनमेंट दिखाता है। यह संभवतः अन्य नोड पी, सी, एस, डी के पुन: असाइनमेंट को भी प्रेरित करता है।
 * यदि अवस्था द्वारा कुछ बदला गया है, तो इसे बाद स्तम्भ समूह में दिखाया जाता है।
 * अगला स्तम्भ में एक तीर → दर्शाता है कि इस चरण के साथ पुनर्संतुलन पूर्ण हो गया है। यदि स्तम्भ बाद बिल्कुल एक स्थिति को निर्धारित करता है, तो इस स्थिति को अगले स्थिति के रूप में दिया जाता है, अन्यथा प्रश्न चिह्न होते हैं।
 * लूप अनुभागों में समाहित है  #डिलीट अवस्था D2| के माध्यम से अवस्था D2 हटाएं, जहां पुनर्संतुलन की समस्या बढ़ गई है $$\Delta h=1$$ ट्री में उच्च स्तर होता है जिसमें मूल पी नया वर्तमान नोड एन बन जाता है। इसलिए इसमें अधिकतम समय लगता है $$h$$ ट्री की मरम्मत के लिए पुनरावृत्तियाँ (जहाँ $$h$$ ट्री की ऊंचाई है)। क्योंकि प्रत्येक पुनरावृत्ति के साथ वृद्धि की संभावना तीव्रता से घट जाती है, कुल पुनर्संतुलन लागत औसतन स्थिर रहती है, वास्तव में #परिशोधन। (बस एक तरफ: मेहलहॉर्न और सैंडर्स बताते हैं: एवीएल ट्री निरंतर परिशोधन अद्यतन लागत का समर्थन नहीं करते हैं।  यह विलोपन के बाद पुनर्संतुलन के लिए सत्य है, परन्तु AVL प्रविष्टि के लिए नहीं। )
 * लूप की बॉडी से #डिलीट अवस्था D3, #डिलीट अवस्था D6, #डिलीट अवस्था D5|D5 + D6, #डिलीट अवस्था D4, और #डिलीट अवस्था D1; से बाहर निकलने वाली शाखाएँ हैं; अनुभाग #अवस्था हटाएँ D3| अवस्था D3 को हटाएँ, इसकी अपनी D6, D5 और D4 अवस्था की तीन अलग-अलग निकास शाखाएँ हैं।
 * रोटेशन D6 और D5 + D6 और D3 + D5 + D6 के स्थितियों में होता है - सभी लूप के बाहर। इसलिए, कुल मिलाकर अधिकतम तीन घुमाव होते हैं।

स्थिति डी1 हटाएं
वर्तमान नोड N नया रूट है। प्रत्येक पथ से एक काला नोड हटा दिया गया है, इसलिए आरबी-गुण संरक्षित हैं। ट्री की काली ऊँचाई 1 से कम हो जाती है।

स्थिति डी2 हटाएं
P, S और S के बच्चे काले हैं। S को लाल रंग से रंगने के बाद S से गुजरने वाले सभी रास्ते, जो कि बिल्कुल वही रास्ते हैं जो N से होकर नहीं गुजरते हैं, उनमें एक काला नोड कम हो जाता है। अब P द्वारा रूट किए गए सबट्री के सभी पथों में ब्लैक नोड की संख्या समान है, परन्तु उन पथों की तुलना में एक कम है जो P से नहीं गुजरते हैं, इसलिए #req4 का अभी भी उल्लंघन हो सकता है। P से N तक पुनः लेबल करने के बाद #loopInvariantD पूर्ण हो जाता है ताकि पुनर्संतुलन को एक काले स्तर (= 1 ट्री स्तर) से अधिक पर दोहराया जा सके।

स्थिति डी3
भाई S का रंग लाल है, इसलिए P और भतीजे C और D का रंग काला होना चाहिए। ए -rotation P पर S को N के दादा-दादी में बदल देता है। फिर पी और एस के रंगों को उलटने के बाद, एन के माध्यम से पथ अभी भी एक काला नोड छोटा है। परन्तु N के पास अब एक लाल माता-पिता P है और पुनर्निर्धारण के बाद एक काला भाई-बहन S है, इसलिए D4, D5, या D6 स्थितियों में परिवर्तन आरबी-आकार को बहाल करने में सक्षम हैं।

स्थिति डी4
भाई-बहन S और S के बच्चे काले हैं, परन्तु P लाल है। S और P के रंगों के आदान-प्रदान से S से गुजरने वाले रास्तों पर काले नोड की संख्या प्रभावित नहीं होती है, परन्तु यह N से गुजरने वाले रास्तों पर काले नोड की संख्या में एक जोड़ देता है, जिससे उन रास्तों पर हटाए गए काले नोड की भरपाई हो जाती है।

स्थिति डी5इन्सर्ट
भाई S काला है, S का करीबी बच्चा C लाल है, और S का दूर का बच्चा D काला है। बाद एक -rotation S में भतीजा C, S का माता-पिता और N का नया भाई-बहन बन जाता है। S और C के रंगों का आदान-प्रदान होता है। All paths still have the same number of black nodes, but now N has a black sibling whose distant child is red, so the constellation is fit for case D6. Neither N nor its parent P are affected by this transformation, and P may be red or black (आरेख में)।

स्थिति डी6
भाई S काला है, S का दूर का बच्चा D लाल है। बाद एक -rotation P पर भाई-बहन S, P और S का माता-पिता बन जाता है's distant child D. The colors of P and S are exchanged, and D is made black. The whole subtree still has the same color at its root S, namely either red or black (आरेख में), जो परिवर्तन से पहले और बाद में एक ही रंग को संदर्भित करता है। इस तरह #req3 संरक्षित है. उपट्री में पथ जो N से नहीं गुजरते (i.o.w. आरेख में D और नोड 3 से होकर गुजरते हैं) पहले की तरह समान संख्या में काले नोड से गुजरते हैं, परन्तु N के पास अब एक अतिरिक्त काला पूर्वज है: या तो P काला हो गया है, या यह था ब्लैक और एस को ब्लैक दादा-दादी के रूप में जोड़ा गया था। इस प्रकार, N से गुजरने वाले पथ एक अतिरिक्त ब्लैक नोड से होकर गुजरते हैं, ताकि #req4 बहाल हो जाए और कुल ट्री RB-आकार में हो। क्योंकि कलन विधि सहायक डेटा संरचना का उपयोग किए बिना और सहायक चर के लिए अतिरिक्त भंडारण स्थान की केवल थोड़ी मात्रा का उपयोग किए बिना इनपुट को बदल देता है, यह इन-प्लेस  कलन विधि है।

सीमा का प्रमाण
के लिए $$h\in\N$$ ऊंचाई का एक लाल-काला ट्री है $$h$$ साथ

नोड ($$\lfloor \, \rfloor$$ फर्श और छत के कार्य हैं) और कम नोड के साथ इस ट्री की ऊंचाई का कोई लाल-काला ट्री नहीं है - इसलिए यह न्यूनतम है। इसकी काली ऊंचाई है $$\lceil h/2\rceil$$ (काली द्रुम के साथ) या विषम के लिए $$h$$ (फिर लाल द्रुम के साथ) भी $$(h-1)/2~.$$ एक निश्चित ऊंचाई के लाल-काले ट्री में नोड की न्यूनतम संख्या होने के लिए, इसमें लाल नोड की अधिकतम संख्या के साथ बिल्कुल एक सबसे लंबा पथ होना चाहिए, ताकि न्यूनतम काली ऊंचाई के साथ अधिकतम ट्री की ऊंचाई प्राप्त की जा सके। इस पथ के अतिरिक्त अन्य सभी नोड को काला करना होगा। यदि इस ट्री से एक नोड हटा दिया जाता है तो यह या तो ऊंचाई खो देता है या कुछ आरबी संपत्ति खो देता है।
 * $$m_h$$ ||colspan=2| $$= 2^{\lfloor(h+1)/2\rfloor} + 2^{\lfloor h/2 \rfloor} - 2$$
 * rowspan=2| ||rowspan=2;style="vertical-align:bot"| $$= \Biggl\{$$ ||style="vertical-align:top"| $$2 \cdot 2^{\tfrac{h}2}-2 = 2^{\tfrac{h}2+1}-2$$ ||      ||style="vertical-align:bot"| if $$h$$ even
 * style="vertical-align:top"| $$3 \cdot 2^{\tfrac{h-1}2}-2$$ || ||style="vertical-align:bot"| if $$h$$ odd
 * }
 * style="vertical-align:top"| $$3 \cdot 2^{\tfrac{h-1}2}-2$$ || ||style="vertical-align:bot"| if $$h$$ odd
 * }
 * }
 * सबूत

ऊंचाई का आरबी ट्री $$h=1$$ लाल द्रुम के साथ न्यूनतम है. इससे सहमति है
 * $$m_1 = 2^{\lfloor (1+1)/2\rfloor} \!+\!2^{\lfloor 1/2 \rfloor} \!\!-\!\!2 = 2^1\!+\!2^0\!\!-\!\!2 = 1~.$$

एक न्यूनतम आरबी ट्री (आरबीh चित्र 4 में) ऊँचाई का $$h>1$$ एक द्रुम है जिसके दो बाल उपट्री अलग-अलग ऊंचाई के हैं। उच्चतर संतान सबट्री भी एक न्यूनतम आरबी ट्री है, RBh–1, जिसमें एक लंबा पथ भी सम्मिलित है जो इसकी ऊंचाई को परिभाषित करता है $h\!\!-\!\!1 $; यह है $$m_{h-1}$$ नोड और काली ऊंचाई $$\lfloor(h\!\!-\!\!1)/2\rfloor =: s .$$ दूसरा उपट्री एक द्वयी ट्री है#(काली) ऊंचाई के द्वयी ट्री के प्रकार $$s$$ रखना $$2^s\!\!-\!\!1=2^{\lfloor(h-1)/2\rfloor}\!\!-\!\!1$$ काला नोड—और कोई लाल नोड नहीं। फिर नोड की संख्या गणितीय प्रेरण द्वारा होती है फलन के किसी फलन का ग्राफ़ $$m_h$$ ब्रेकप्वाइंट के साथ उत्तल फलन और खंड-खंड रैखिक फलन है $$(h=2k\;|\;m_{2k}=2 \cdot 2^k\!-\!2)$$ जहाँ $$k \in \N .$$ फलन को इस प्रकार सारणीबद्ध किया गया है $$m_h=$$ A027383(h–1) के लिए $$h\geq 1$$.

असमानता $$9>8=2^3$$ ओर जाता है $$3 > 2^{3/2}$$, जो विषम के लिए है $$h$$ ओर जाता है
 * के लिए फलन को हल करना $$h$$
 * $$m_h = 3 \cdot 2^{(h-1)/2}-2 = \bigl(3\cdot 2^{-3/2}\bigr) \cdot 2^{(h+2)/2}-2 > 2 \cdot 2^{h/2}-2$$.

तो दोनों, सम और विषम स्थिति में, $$h$$ अंतराल में है साथ $$n $$ नोड की संख्या होने के नाते. एक लाल-काला ट्री $$n$$ नोड (कुंजियाँ) में ट्री की ऊंचाई होती है $$h \in O(\log n) .$$
 * निष्कर्ष

संचालन और थोक संचालन सेट करें
सिंगल-एलिमेंट निविष्ट, डिलीट और लुकअप ऑपरेशंस के अतिरिक्त, कई सेट ऑपरेशंस को परिभाषित किया गया है red–black trees: संघ (सेट सिद्धांत), प्रतिच्छेदन (सेट सिद्धांत) और सेट अंतर। फिर इन सेट फ़ंक्शंस के आधार पर सम्मिलन या विलोपन पर तेज़ बल्क कलन विधि अनुप्रयुक्त किया जा सकता है। ये सेट कलन विधि दो सहायक कलन विधि, स्प्लिट और जॉइन पर निर्भर करते हैं। नए परिचालनों के साथ, लाल-काले ट्री का कार्यान्वयन अधिक कुशल और अत्यधिक-समानांतर हो सकता है। अपनी समय की जटिलताओं को प्राप्त करने के लिए इस कार्यान्वयन के लिए आवश्यक है कि रूट को या तो लाल या काला होने की अनुमति दी जाए, और प्रत्येक नोड अपनी स्वयं की काली ऊँचाई संग्रहीत करे।


 * जॉइन: जॉइन फलन दो लाल-काले ट्री पर है $t_{1}$ और $t_{2}$ और एक कुंजी $k$, जहाँ $t_{1} < k < t_{2}$, मैं। ।इ। सभी चाबियाँ $t_{1}$ से कम हैं $k$, और सभी कुंजियाँ $t_{2}$से अधिक हैं $k$. यह सभी तत्वों से युक्त एक ट्री लौटाता है $t_{1}$, $t_{2}$ के रूप में भी $k$.
 * यदि दो ट्री की काली ऊंचाई समान है, तो जॉइन बस बाएं उपट्री के साथ एक नया नोड बनाता है $t_{1}$, द्रुम $k$ और दायां उपट्री $t_{2}$. अगर दोनों $t_{1}$ और $t_{2}$काली द्रुम है, सेट $k$ लाल होना. अन्यथा $k$काले रंग में सेट है.
 * यदि काली ऊँचाई असमान है, तो मान लीजिए $t_{1}$ की तुलना में अधिक काली ऊँचाई है $t_{2}$ (दूसरा स्थिति सममित है)। जॉइन की दाहिनी रीढ़ का अनुसरण करता है $t_{1}$ एक काले नोड तक $c$, जिसके साथ संतुलित है $t_{2}$. इस नोड पर बाएँ बच्चे के साथ एक नया नोड $c$, द्रुम $k$ (लाल होने के लिए सेट) और सही बच्चा $t_{2}$ c को प्रतिस्थापित करने के लिए बनाया गया है। नया नोड लाल-काले अपरिवर्तनीय को अमान्य कर सकता है क्योंकि अधिकतम तीन लाल नोड एक पंक्ति में दिखाई दे सकते हैं। इसे डबल रोटेशन के साथ ठीक किया जा सकता है। यदि दोहरा लाल मुद्दा द्रुम तक फैलता है, तो गुणों को बहाल करते हुए, द्रुम को काला कर दिया जाता है। इस फलन की लागत दो इनपुट ट्री के मध्य काली ऊंचाई का अंतर है।


 * विभाजन: एक लाल-काले ट्री को दो छोटे ट्री में विभाजित करना, जो कि चाबी से छोटे हों $x$, और वे कुंजी से बड़े हैं $x$, पहले रूट से एक रास्ता डालकर डालें $x$ लाल-काले ट्री में। इस प्रविष्टि के बाद, सभी मान इससे कम होंगे $x$ पथ के बायीं ओर मिलेगा, और सभी मान इससे बड़े होंगे $x$ दाहिनी ओर मिलेगा. जॉइन अनुप्रयुक्त करने से, बायीं ओर के सभी उपट्रीों को नीचे से ऊपर तक मध्यवर्ती नोड के रूप में पथ पर कुंजियों का उपयोग करके बाएँ ट्री बनाने के लिए नीचे से ऊपर की ओर मर्ज किया जाता है, और दायाँ भाग सममित होता है।
 * कुछ अनुप्रयोगों के लिए, स्प्लिट यदि को दर्शाते हुए एक बूलियन मान भी लौटाता है $x$ ट्री में दिखाई देता है. स्प्लिट की लागत है $$O(\log n) ,$$ ट्री की ऊंचाई का क्रम. इस कलन विधि का वास्तव में लाल-काले ट्री के किसी विशेष गुण से कोई लेना-देना नहीं है, और इसका उपयोग किसी भी ट्री पर जॉइन कलन विधि के साथ किया जा सकता है, जैसे कि एवीएल ट्री।

जॉइन कलन विधि इस प्रकार है:

विभाजन एल्गोरिथ्म इस प्रकार है:

दो लाल-काले ट्री का मिलन $t_{1}$ और $t_{2}$ सेट का प्रतिनिधित्व करना $A$ और $B$, एक लाल-काला ट्री है $t$ जो प्रतिनिधित्व करता है $A ∪ B$. निम्नलिखित पुनरावर्ती फलन इस संघ की गणना करता है:

यदि टी2 = शून्य वापसी टी1 (एल1,बी,आर1)=विभाजित(t1,टी2।चाबी)

यहां, विभाजन को दो ट्री को वापस करने के लिए माना जाता है: एक कुंजी को अपनी इनपुट कुंजी से कम रखता है, एक बड़ी कुंजी को रखता है। ( कलन विधि सतत डेटा संरचना है | गैर-विनाशकारी, परन्तु एक इन-प्लेस विनाशकारी संस्करण भी उपस्थित है।)

प्रतिच्छेदन या अंतर के लिए एल्गोरिथ्म समान है, परन्तु इसके लिए Join2 हेल्पर रूटीन की आवश्यकता होती है जो कि Join के समान है परन्तु मध्य कुंजी के बिना। यूनियन, इंटरसेक्शन या अंतर के नए कार्यों के आधार पर, या तो एक कुंजी या एकाधिक कुंजी को लाल-काले ट्री से डाला या हटाया जा सकता है। चूंकि स्प्लिट जॉइन को कॉल करता है, परन्तु सीधे लाल-काले ट्री के संतुलन मानदंडों से निपटता नहीं है, ऐसे कार्यान्वयन को आमतौर पर जॉइन-आधारित ट्री कलन विधि कहा जाता है। सम्मिलित-आधारित कार्यान्वयन।

मिलन, प्रतिच्छेद और भेद प्रत्येक की जटिलता है $$O\left(m \log \left({n\over m}+1\right)\right)$$ आकार के दो लाल-काले ट्री के लिए $$m$$ और $$n(\ge m)$$. तुलनाओं की संख्या की दृष्टि से यह जटिलता इष्टतम है। अधिक महत्वपूर्ण बात यह है कि चूंकि संघ, प्रतिच्छेदन या अंतर के लिए पुनरावर्ती कॉल एक-दूसरे से स्वतंत्र हैं, इसलिए उन्हें समानांतर कलन विधि के विश्लेषण के साथ समानांतर प्रोग्रामिंग निष्पादित की जा सकती है। $$O(\log m \log n)$$. कब $$m=1$$यदि बड़े ट्री की द्रुम का उपयोग छोटे ट्री को विभाजित करने के लिए किया जाता है, तो जॉइन-आधारित कार्यान्वयन में एकल-तत्व सम्मिलन और विलोपन के समान अभिकलनात्मक निर्देशित अचक्रीय ग्राफ (डीएजी) होता है।

समानांतर कलन विधि
वस्तुओं की क्रमबद्ध सूचियों से लाल-काले ट्री के निर्माण के लिए समानांतर कलन विधि निरंतर समय में चल सकते हैं या $$O(\log \log n)$$ समय, अभिकलित्र मॉडल पर निर्भर करता है, यदि उपलब्ध प्रोसेसर की संख्या संख्या के अनुपातिक रूप से आनुपातिक है $$n$$ वस्तुओं की जहां $$n\to\infty$$. तेज़ अन्वेषण, सम्मिलन और विलोपन समानांतर कलन विधि भी ज्ञात हैं। जॉइन-आधारित ट्री कलन विधि | लाल-काले ट्री के लिए जॉइन-आधारित  कलन विधि थोक संचालन के लिए समानांतर हैं, जिसमें यूनियन, इंटरसेक्शन, निर्माण, फ़िल्टर, मैप-रिड्यूस इत्यादि सम्मिलित हैं।

समानांतर थोक संचालन
सम्मिलन, निष्कासन या अद्यतन जैसे बुनियादी संचालन को कई तत्वों के बड़े पैमाने पर प्रक्रिया करने वाले संचालन को परिभाषित करके समानांतर किया जा सकता है। कई बुनियादी परिचालनों के साथ बल्क को संसाधित करना भी संभव है, उदाहरण के लिए बल्क में डालने के लिए तत्व और ट्री से हटाने के लिए तत्व भी हो सकते हैं।

बल्क कलन विधि के लिए कलन विधि केवल लाल-काले ट्री पर अनुप्रयुक्त नहीं होते हैं, बल्कि अन्य क्रमबद्ध अनुक्रम डेटा संरचनाओं के लिए भी अनुकूलित किए जा सकते हैं, जैसे 2-3 ट्री, 2-3-4 ट्री और (ए, बी) - ट्री. निम्नलिखित में बल्क निविष्ट के लिए अलग-अलग कलन विधि की व्याख्या की जाएगी, परन्तु समान  कलन विधि को हटाने और अद्यतन करने के लिए भी अनुप्रयुक्त किया जा सकता है। बल्क निविष्ट एक कलन विधि है जो अनुक्रम के प्रत्येक तत्व को सम्मिलित करता है $$I$$ एक ट्री के ऊपर $$T$$.

सम्मिलित-आधारित
इस दृष्टिकोण को प्रत्येक क्रमबद्ध अनुक्रम डेटा संरचना पर अनुप्रयुक्त किया जा सकता है जो कुशल जुड़ाव और विभाजन-संचालन का समर्थन करता है। सामान्य विचार विभाजन करना है $$I$$ और $$T$$ कई भागों में और इन भागों पर समानांतर में सम्मिलन करें।


 * 1) सबसे पहले थोक $$I$$ सम्मिलित किए जाने वाले तत्वों को क्रमबद्ध किया जाना चाहिए।
 * 2) उसके बाद,  कलन विधि विभाजित हो जाता है $$I$$ में $$k \in \mathbb{N}^+$$ पार्ट्स $$\langle I_1, \cdots, I_k \rangle$$ लगभग समान आकार का।
 * 3) अगला ट्री $$T$$ में विभाजित किया जाना चाहिए $$k$$ पार्ट्स $$\langle T_1, \cdots, T_k \rangle$$ एक तरह से, ताकि हर किसी के लिए $$j \in \mathbb{N}^+ | \, 1 \leq j < k$$ निम्नलिखित बाधाएँ कायम हैं:
 * 4) $$\text{last}(I_j) < \text{first}(T_{j + 1})$$
 * 5) $$\text{last}(T_j) < \text{first}(I_{j + 1})$$
 * 6) अब  कलन विधि प्रत्येक तत्व को सम्मिलित करता है $$I_j$$ में $$T_j$$ क्रमानुसार. यह चरण प्रत्येक के लिए किया जाना चाहिए $$j$$तक किया जा सकता है $$k$$ प्रोसेसर समानांतर में.
 * 7) अंत में, परिणामी ट्री को पूरे कलन विधि का अंतिम परिणाम बनाने के लिए जोड़ा जाएगा।

ध्यान दें कि चरण 3 में विभाजन के लिए बाधाएँ हैं $$I$$ आश्वस्त करें कि चरण 5 में ट्री को पुन: जोड़ा जा सकता है और परिणामी क्रम को क्रमबद्ध किया जा सकता है।

छद्म कोड बल्क-निविष्ट के लिए जॉइन-आधारित कलन विधि का एक सरल विभाजन और जीत कार्यान्वयन दिखाता है। दोनों पुनरावर्ती कॉल समानांतर में निष्पादित की जा सकती हैं। यहां उपयोग किया गया जॉइन कलन विधि इस आलेख में बताए गए संस्करण से भिन्न है, इसके बजाय जॉइन-आधारित ट्री कलन विधि#जॉइन2 का उपयोग किया जाता है, जो दूसरे पैरामीटर k को मिस करता है।

निष्पादन समय
छंटाई $$I$$ इस विश्लेषण में विचार नहीं किया गया है. बंटवारे और जुड़ने के लिए समानांतर कलन विधि का उपयोग करके इसे बेहतर बनाया जा सकता है। इस स्थिति में निष्पादन का समय है गणित>\in O\left(\log |T| + \frac{|I|}{k} \log |T|\right).

अनुप्रक्रमण
बल्क ऑपरेशंस को समानांतर करने का एक अन्य तरीका पाइपलाइन (कंप्यूटिंग) दृष्टिकोण का उपयोग करना है। यह बुनियादी कलन विधि को संसाधित करने के कार्य को उप-कार्यों के अनुक्रम में तोड़कर किया जा सकता है। कई बुनियादी संचालन के लिए प्रत्येक उप-कार्य को एक अलग प्रोसेसर को सौंपकर उप-कार्यों को समानांतर में संसाधित किया जा सकता है।


 * 1) सबसे पहले थोक $$I$$ सम्मिलित किए जाने वाले तत्वों को क्रमबद्ध किया जाना चाहिए।
 * 2) प्रत्येक तत्व के लिए $$I$$ एल्गोरिथ्म तदनुसार सम्मिलन स्थिति का पता लगाता है $$T$$. यह प्रत्येक तत्व के लिए समानांतर में किया जा सकता है $$\in I$$ तब से $$T$$ इस प्रक्रिया में परिवर्तन नहीं किया जाएगा। अब $$I$$ अनुवर्ती भागों में विभाजित किया जाना चाहिए $$S$$ प्रत्येक तत्व की प्रविष्टि स्थिति के अनुसार। उदाहरण के लिए $$s_{n, \mathit{left}}$$ का परिणाम है $$I$$ इसमें वे तत्व सम्मिलित हैं जिनकी प्रविष्टि स्थिति नोड के बाईं ओर होगी $$n$$.
 * 3) मध्य तत्व $$m_{n, \mathit{dir}}$$ हर बाद का $$s_{n, \mathit{dir}}$$ में डाला जाएगा $$T$$ एक नये नोड के रूप में $$n'$$. यह प्रत्येक के लिए समानांतर में किया जा सकता है $$m_{n, \mathit{dir}}$$ चूंकि परिभाषा के अनुसार प्रत्येक की प्रविष्टि स्थिति $$m_{n, \mathit{dir}}$$ निराला है। अगर $$s_{n, \mathit{dir}}$$ के बाएँ या दाएँ तत्व सम्मिलित हैं $$m_{n, \mathit{dir}}$$, उन्हें बाद के नए सेट में समाहित किया जाएगा $$S$$ जैसा $$s_{n', \mathit{left}}$$ या $$s_{n', \mathit{right}}$$.
 * 4) अब $$T$$ संभवतः द्रुमों से पर्णो तक के रास्तों के अंत में सतत दो लाल गांठें होती हैं, जिनकी मरम्मत की आवश्यकता होती है। ध्यान दें कि, मरम्मत करते समय, तत्वों की प्रविष्टि स्थिति $$\in S$$ यदि संबंधित नोड घूर्णन से प्रभावित होते हैं, तो अद्यतन करना होगा। यदि दो नोड में अलग-अलग निकटतम काले पूर्वज हैं, तो उन्हें समानांतर में मरम्मत की जा सकती है। चूंकि अधिकतम चार नोड में एक ही निकटतम काला पूर्वज हो सकता है, सबसे निचले स्तर पर नोड को समानांतर चरणों की निरंतर संख्या में मरम्मत की जा सकती है। यह चरण क्रमिक रूप से उपरोक्त काले स्तरों पर अनुप्रयुक्त किया जाएगा जब तक $$T$$ पूर्णतया मरम्मत की गई है.
 * 5) चरण 3 से 5 तक नए अनुवर्ती चरणों में दोहराया जाएगा $$S$$ खाली है। इस नोड पर प्रत्येक तत्व $$\in I$$ डाला गया है. इन चरणों के प्रत्येक अनुप्रयोग को एक चरण कहा जाता है। चूंकि अनुवर्ती की लंबाई में $$S$$ है $$\in O(|I|)$$ और प्रत्येक चरण में अनुवर्ती को आधा-आधा काटा जा रहा है, चरणों की संख्या है $$\in O(\log |I|)$$. चूंकि सभी चरण ट्री के काले स्तरों से ऊपर बढ़ते हैं, इसलिए उन्हें एक पाइपलाइन में समानांतर किया जा सकता है। एक बार जब एक चरण एक काले स्तर पर प्रसंस्करण समाप्त कर लेता है, तो अगला चरण आगे बढ़ने और उस स्तर पर जारी रखने में सक्षम होता है।

निष्पादन समय
वर्गीकरण $$I$$, इस विश्लेषण में विचार नहीं किया गया है। साथ ही, $$|I|$$ से छोटा $$|T|$$ माना जाता है, अन्यथा परिणामस्वरूप ट्री को आखुर से बनाना अधिक कुशल होगा।

लोकप्रिय संस्कृति
लुप्त के एक प्रकरण में एक लाल-काले ट्री का सही संदर्भ दिया गया था जैसा कि रॉबर्ट सेडगेविक (अभिकलित्र वैज्ञानिक) ने अपने एक व्याख्यान में बताया था:
 * जेस: यह फिर से लाल द्वार था।
 * पोलक: मैंने सोचा कि लाल द्वार भंडारण पात्र था।
 * जेस: लेकिन यह अब लाल नहीं था, यह काला था।
 * एंटोनियो: तो लाल का काला हो जाने क्या अर्थ है?
 * पोलक: बजट घाटा, लाल स्याही, काली स्याही हैं।
 * एंटोनियो: यह एक द्विभाजी अन्वेषण ट्री से हो सकता है। लाल-काले ट्री एक नोड से एक वंशज पर्ण तक प्रत्येक सरल पथ को पथानुसरण करता है जिसमें समान संख्या में काले नोड होते हैं।
 * जेस: क्या इससे आपको महिलाओं की स्थिति में सहायता मिलती है?

यह भी देखें

 * डेटा संरचनाओं की सूची
 * ट्री डेटा संरचना
 * ट्री क्रमावर्तन
 * AA ट्री, लाल-काले ट्री का एक रूप
 * वाम वृत्ति लाल-काले ट्री
 * एवीएल ट्री
 * बी-ट्री (2-3 ट्री, 2-3-4 ट्री, बी+ ट्री, बी*-ट्री, यूबी-ट्री)
 * स्केप्गोट ट्री
 * स्पले ट्री
 * T-ट्री
 * डब्ल्यूएवीएल ट्री

अग्रिम पठन

 * Mathworld: Red–Black Tree
 * San Diego State University: CS 660: Red–Black tree notes, by Roger Whitney

बाहरी संबंध

 * Ben Pfaff: An Introduction to Binary Search Trees and Balanced Trees. Free Software Foundation, Boston 2004, ftp.gnu.org (PDF gzip; 1662 kB)
 * A complete and working implementation in C
 * OCW MIT Lecture on Red-black Trees by Erik Demaine
 * – Visualization of random and pre-sorted data insertions, in elementary binary search trees, and left-leaning red–black trees
 * An intrusive red–black tree written in C++
 * Red–black BSTs in 3.3 Balanced Search Trees
 * Red–black BST Demo