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

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

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

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

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

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

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

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

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

मूल कलन विधि में 8 असंतुलित स्थितियों का उपयोग किया गया था, परन्तु  उसे घटाकर 6 असंतुलित स्थिति कर दिया। सेडगेविक ने दिखाया कि इन्सर्ट कलन विधि को जावा (प्रोग्रामिंग भाषा) कोड की केवल 46 पंक्तियों में अनुप्रयुक्त किया जा सकता है।

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

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

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

इन अंत-पथ वाली वस्तुओं के लिए किसी रंग का श्रेय देना वास्तव में आवश्यक नहीं है, क्योंकि स्थिति यही है  या  शर्त से निहित है  (#C-eval भी देखें)।

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

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

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

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

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


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

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

यह आलेख इसे भी छोड़ देता है, क्योंकि यह पुनरावर्ती कलन विधि और प्रमाणों को थोड़ा परेशान करता है।

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

प्रत्येक 2-3-4 ट्री|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 symbolises a red node and BlackNode.svg a (non-NIL) black node (of black height &ge; 1), RedOrBlackNode.svgगैर-शून्य बिंदु के लाल या काले रंग का प्रतीक है, परन्तु पूरे आरेख में एक ही रंग है। आरेखों में शून्य बिंदु का प्रतिनिधित्व नहीं किया गया है।
 * वेरिएबल N वर्तमान बिंदु को दर्शाता है, जिसे   N   या  N   आरेखों में।
 * एक आरेख में तीन स्तम्भ और दो से चार क्रियाएं होती हैं। बायां स्तम्भ पहले पुनरावृत्ति को दिखाता है, दायां स्तम्भ उच्च पुनरावृत्तियों को दिखाता है, मध्य स्तम्भ किसी स्थिति के विभाजन को उसके विभिन्न कार्यों में दिखाता है।
 * 1) क्रिया प्रविष्टि अपने रंगों के साथ बिंदु के समूह को दिखाती है जो एक स्थिति को परिभाषित करती है और ज्यादातर कुछ #गुणों का उल्लंघन करती है। एक नीली सीमा वर्तमान बिंदु एन को वलय करती है और अन्य बिंदु को एन के साथ उनके संबंध के अनुसार लेबल किया जाता है।
 * 2) यदि ट्री का घूमना उपयोगी माना जाता है, तो इसे अगली क्रिया में चित्रित किया जाता है, जिसे रोटेशन का लेबल दिया जाता है।
 * 3) यदि कुछ रंग बदलना उपयोगी माना जाता है, तो इसे अगली क्रिया में चित्रित किया जाता है, जिसे रंग लेबल किया जाता है।
 * 4) यदि अभी भी मरम्मत की कुछ आवश्यकता है, तो स्थिति अन्य स्थितियों के कोड का उपयोग करते हैं और यह वर्तमान बिंदु एन के पुन: असाइनमेंट के बाद होता है, जिसमें पुन: एक नीली वलय होती है और जिसके सापेक्ष अन्य बिंदु को भी पुन: असाइन करना पड़ सकता है। इस क्रिया को पुन: असाइन लेबल किया गया है। दोनों के लिए, सम्मिलित करें और हटाएं, (बिल्कुल) एक स्थिति है जो रूट के करीब एक काले स्तर को दोहराता है; तब पुन: निर्दिष्ट तारामंडल संबंधित लूप अपरिवर्तनीय को संतुष्ट करता है।
 * A possibly numbered triangle with a black circle atop TriangleTop.svgएक लाल-काले उपट्री का प्रतिनिधित्व करता है (#req3 के अनुसार अपने मूल से जुड़ा हुआ) जिसकी काली ऊंचाई पुनरावृत्ति स्तर शून्य से एक के बराबर है, अर्थात। ।इ। प्रथम पुनरावृत्ति में शून्य. इसकी जड़ लाल या काली हो सकती है। A possibly numbered triangle TriangleSubtree.svgएक लाल-काले उपट्री का प्रतिनिधित्व करता है जिसकी काली ऊँचाई एक कम है, अर्थात। ।इ। इसके मूल की दूसरी पुनरावृत्ति में काली ऊँचाई शून्य है।


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

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

 शून्य RBinsert1(



इन्सर्ट कलन विधि के रीबैलेंसिंग लूप में निम्नलिखित लूप अपरिवर्तनीय  है:
 * The current node N is [[File:RedNode.svg]](लाल) प्रत्येक पुनरावृत्ति की शुरुआत में।
 * #req3 संभावित अपवाद N←P के साथ सभी जोड़े बिंदु←पैरेंट के लिए संतुष्ट है जब P भी लाल है (एक #ViolR|N पर लाल-उल्लंघन)।
 * अन्य सभी गुण (#req4 सहित) पूरे ट्री में संतुष्ट हैं।

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

 * आरेखों में, P का उपयोग N के माता-पिता के लिए, G का उपयोग दादा-दादी के लिए, और U N के चाचा को दर्शाएगा।
 * आरेख मूल बिंदु P को उसके मूल G के बाएं बच्चे के रूप में दिखाते हैं, भले ही P का दोनों ओर होना संभव है। नमूना कोड साइड वेरिएबल के माध्यम से दोनों संभावनाओं को कवर करता है.
 * एन इंसर्शन बिंदु है, परन्तु जैसे-जैसे कलन विधि आगे बढ़ता है अन्य बिंदु भी चालू हो सकते हैं (अवस्था #इन्सर्ट अवस्था I2 देखें)।
 * आरेख उन स्थितियों को दिखाते हैं जहां पी भी लाल है, लाल-उल्लंघन।
 * स्तम्भ 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 वह जड़ है जिसमें गैर-शून्य बच्चा नहीं है, तो इसे NIL बिंदु द्वारा प्रतिस्थापित किया जाता है, जिसके बाद ट्री खाली होता है - और आरबी-आकार में।

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

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

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

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

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

डिलीट कलन विधि के पुनर्संतुलन लूप में निम्नलिखित लूप अपरिवर्तनीय है:
 * 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