درخت_سرخ-سیاه
شباهت به درخت‌های بی مرتبه ۴
یک درخت قرمز-سیاه ار نظر ساختار شبیه یک درخت بی مرتبه ۴ است که در آن هر گره می‌تواند ۱ تا ۳ مقدار و همچنین ۲ تا ۴ اشاره گر به فرزندانش داشته باشد. در هر درخت بی، هر گره تنها یک مقدار دارد که برابر مقدار گره سیاه در درخت قرمز-سیاه است، و یک مقدار دلخواه دارد که و/یا بعد از آن در همان گره آمده‌است، که هر دوی آن‌ها مساوی گره قرمز در درخت قرمز-سیاه هستند. یک راه دیدن این برابری این است که در گره‌های قرمز درخت قرمز-سیاه در یک نمایش گرافیکی به سمت بالا حرکت کنیم، به‌طوری‌که با پدر سیاهشان در یک ردیف قرار بگیرند و یک دسته افقی را تشکیل دهند. در درخت بی، یا در نمایش گرافیکی تغییر یافته درخت قرمز-سیاه که گفته شد، همه برگ‌ها عمق یکسانی دارند. در این حالت درخت قرمز-سیاه، از نظر ساختار با درخت بی مرتبه ۴ برابر است که حداقل میزان پرشدن در یک دسته برابر ۳۳٪ است. این نوع درخت بی، عمومی تر از درخت قرمز-سیاه است اما هنگام تبدیل به درخت قرمز-سیاه، ابهاماتی دارد چون از یک درخت بی مرتبه ۴، چندین درخت قرمز-سیاه ساخته می‌شود. اگر یک دسته در درخت بی تنها ۱ مقدار را شامل شود، این مقدار کمینه است، گره مربوطه سیاه است و دو اشاره گر به فرزندانش دارد. اگر یک دسته شامل ۳ مقدار شود، مقدار وسطی در یک گره سیاه قرار می‌گیرد و گره‌های کناری آن باید قرمز باشند. اگر دسته شامل ۲ مقدار باشد، هر کدام از آن‌ها می‌تواند در درخت قرمز-سیاه، سیاه باشد و دیگری باید قرمز باشد؛ بنابراین درخت بی مرتبه ۴، مشخص نمی‌کند که کدامیک از مقادیر در هر دسته ریشه سیاه کل آن دسته و پدر بقیه مقادیر دسته است. با وجود این، عملیات در درخت‌های قرمز-سیاه از نظر زمان بهینه تر هستند چون نیازی به نگهداشتن برداری از مقادیر نیست. این نگهداری زمانی که مقادیر مستقیماً در هر گره ذخیره شده‌اند، نسبت به وقتی که تنها مرجع آن‌ها نگهداری شده‌است، پر هزینه است. البته گره‌های درخت بی از نظر حافظه به صرفه تر هستند چون لازم نیست برای آن‌ها صفت رنگ نگهداری شود. در عوض باید مشخص شود کدام بخش از دسته استفاده شده‌است. می‌توان شباهت‌هایی با درخت‌های بی مرتبه‌های بالاتری که از نظر ساختار شبیه درخت دودویی رنگ شده باشند هم ایجاد کرد چون تنها به رنگ‌های بیشتری نیاز است. مثلاً فرض کنید آبی را هم استفاده کنیم. در نتیجه درخت آبی-قرمز-سیاه مثل درخت قرمز-سیاه تعریف می‌شود اما با این محدودیت اضافه که دو گره متوالی از نظر مقدار نباید آبی باشند و همه گره‌های آبی باید فرزندان گره قرمز باشند. چنین درختی معادل یک درخت بی می‌شود که دسته‌های آن حداکثر ۷ مقدار و با این رنگ‌ها دارند :آبی، قرمز، آبی، سیاه، آبی، قرمز، آبی (هر گروه حداکثر ۱ گره سیاه، ۲ گره قرمز و ۴ گره آبی دارد). برای تعدیل کردن حجم مقادیر، درج و حذف در یک درخت دودویی سریعتر از درخت‌های بی است چون درخت‌های رنگ شده تلاشی برای بیشینه کردن مقدار پر شدن در یک دسته افقی از گره‌ها نمی‌کنند. (تنها کمینه مقدار پرشدن در درخت‌های دودویی رنگ شده تضمین شده‌است). چرخش در درخت‌های بی سریع تر است (چون چرخش‌ها اغلب در دسته یکسان رخ می‌دهند به جای اینکه در چند گره مجزا در یک درخت دودویی رنگ شده انجام شوند). با این وجود برای مرتب‌سازی حجم زیادی از داده‌ها، درخت‌های بی بسیار سریعتر هستند چون با گروهی کردن چند فرزند در یک دسته و امکان دسترسی محلی، فشرده تر شده‌اند. همه بهینه‌سازی‌های ممکن در درخت‌های بی برای افزایش متوسط میزان پرشدن گروه‌ها در درخت‌های دودویی رنگ شده هم ممکن است. بیشینه کردن میزان پرشدن در یک درخت بی، مانند کم کردن ارتفاع درخت چند رنگ است که با افزایش تعداد گره‌های غیر سیاه انجام می‌شود. بدترین حالت زمانی رخ می‌دهد که همه گره‌ها در یک درخت دودویی رنگ شده، سیاه باشند. بهترین حالت زمانی است که تنها یک سوم آن‌ها سیاه باشند (و دو سوم بقیه، قرمز باشند).