کامپیوتر و IT و اینترنتعلوم مهندسی

ساختمان داده ها و الگوريتم ها (Red-Black Trees)

صفحه 1:
Ret-Olack Trees ساختمان داده ها و الگوریتم ها

صفحه 2:
Ret-Okack Trees (ROT) © درختهاي قرمز و سياه ‎O83 Ge i (Red/Black Mreev)‏ جستجوي دودويي ‎Gul (Diy Grack Prep)‏ 48 98 28 آن علاوه بر فيلدهاي دیگر» یک بیت رنگ نیز دارد بیت رنگ دوحالته (قرمز یا سیام) است ‎٩‏ هدف از اين بیت» تضمین توازن نسبي درخت است - در درخت جستجوي دودويي» عملیات جستجو » افزودن و حذف گره هزینه اي متناسب با عمق درخت دارند. ‏- عمق درخت متوازن با () گره از مرتبه (0 ,)0 است. ‏- عمق درخت فامتوازن با () گره از مرتبه (2)60) است.

صفحه 3:
Redback Tree(ROT) ROT = OG + color bit & ‏بقيه مشخصات همانند 8)845) است‎ © - ارث بري مه ‎whey, bef, right, 7 —‏ ۶ هر گره درخت دقیقا دو فرزند دارد ‎me‏ به جاي فرزند نداشته» ديج استفاده مي كنيم ‎٩‏ تمام برگهاي تهي ( فرزنداني که وجود ندارنده) به رنگ سیاه ‏- براي مشخص نمودن برگهاي تهي » یک گره كمکي ایب مي سازیم و از ‏آن به جاي تمام فرزندان تهي درخت استفاده مي کنیم. #مشابه گره بو در ليستهاي پيوندي

صفحه 4:
4. هر گره درخت یا سیاه است یا قرمز 2 ريشه درخت سياه است ©. هر كره تهي(ادج) سياه است اگر گرهي قرمز باشد» هر دو فرزند آن سياه 5 ©. همه مسيرهايي كه از يى كره شروع شده وابه برك مي رسندء دقيقا داراي تعداد مساوي گره سياه هستند.

صفحه 5:
توجه: هر گره درخت دقیقا دو فرزند دارد؛ به جاي فرزند نداشته. 12111 استفاده مي

صفحه 6:
ROT 4 53 (jae) eli! © ارتفاع كره ‎B(x)‏ : ارتفاع یک گره برابر با طول بزرگترین مسیر گره به برگهاي درخت است, © ارتفاع سياه گره )رد : تعداد گرههاي سیاه در هر یک از مسيرهايي است که از این گره شروع مي شوند و به برگ ()ل ختم متي ‎age‏ ‏- برك ()اج جزء مسیر محسوب مي شود - خود كّره » جزء مسير محسوب نمي شود ‎٩‏ ارتفاع سیاه یک درخت /16) برابر با ارتفاع سیاه ريشه آن است

صفحه 7:
ارتفاع :۲ © ارتفاع سیامیبا ه ۵ >( >( © طول بلندترین مسیر از یک گره به برگي از درخت» حداکثر دو برابر طول کوتاهترین مسیر از همان گره به برگهاي درخت است.

صفحه 8:
لم0 : ارتفاع درخت ۴/) ‎2d‏ طول بزرگترین مسیر از یک گره به برگ حداکثر دو برابر طول کوتاهترین مسیر است: اثبات: ‎٩‏ تعداد گرههاي سیاه روي مسيرهاي که از گره بشروع شده و به برگي مي رسند برابر (7۷ است ( خاصیت 9) ‏اگر طول کوتاهترین مسیر را با (مم)جنشان دهیم» ‎(xe)‏ =< معط ‏© بنابر خاصیت چهارم» روي مسيرهاي مذکور گرههاي قرمز متوالي وجود ندارند و همه مسیرها هم به گره سپاه تمام مي شوند. ‏بنابراین روي بلندترین مسیر» ترتیب گرههاي قرمز و سیاه حداکثر ‏یک در میان و به تعداد مساوي است: 917 > ( ‎(ac) <= Gof) ules a ©

صفحه 9:
تعداد گرههاي 4۲۳ ۶ لم 0: تعداد گرههاي داخلي درختچه واقع در گره »« حداقل برابر است با:0-. ۶ اثبات ( با استفاده از استقرا ریاضی) - اگر ۰۳-0 آنگاه بببرگ است. و ارتفاع سیاه آن نیز صفر است. در نتيجه تعداد گرههاي درختچه برابر 00 - < 0 است - اگر 200 (! و فرض کنیم ارتفاع سیاه گره بربرابر 9 < ۲ باشد: © هر کدام از فرزندان « ارتفاعي برابر با 4 خواهند داشت. لگر فرزند درخت قرمز باشده ارتفاع سياه آن ما و در غير اين صورت را خواهد بود © بنابر فرض استقرا هر درختجه شروع شده از فرزند »د حداقل-) 1004© كره خواهد داشد و درنتیجه؛ درختچه واقع در « حدلقل ‎oS + (OHM QO‏ خواهد داشت 60-۶ 02+( -0۸-۱) 0 < تعداد گر ههاودرختچه ولقم در «

صفحه 10:
‎٩‏ لم0: طول بزرگترین مسیر از یک گره به برگ حداکثر دو برابر طول ‎fe) <= G(s OLS‏ ‎al ©‏ 0: تعداد گرههاي داخلي درختچه واقع در گره ب« حداقل برابر است با:0-0/©. ‏* لم 9: حداکثر ارتفاع یک درخت 0369/۳ با ب گره» برابر است با: © ‎by (wtd)‏ ‏© اثبات - لم دوم: ‎w= O*-,‏ - لم اول: 0 - 46© < ‎٠‏ جه ول < بر « (مجج)ا 6 عاد

صفحه 11:
* هانند ‎BOM‏ ۰ تمام عملیات با (جبمر) (قابل انجام هستند 9 عملیات جستجو که نیاز به تغیبر درخت ندارند ‎GTP ie lids‏ انجام مي كيرند © عمليات حذف نمودن و افزودن كره به كارهاي بيشتري براي حفظ خاصيت 8607) نیازمند هستند

صفحه 12:

صفحه 13:

صفحه 14:

صفحه 15:

صفحه 16:

صفحه 17:
P cob] = REO tea robr{p{z]] — OL ‏(ر لبم‎ - 0 cobrlrhdall] — REO 7< Ppl] PIX-OP Color ‏ماس‎

صفحه 18:
[[عاماكه حدم ‎teu 2 — Az]‏ ‎LEPT-ROTOTE(T, 2)‏ ‎vvbr{pf{z]] — BLOCK‏ ‎cobrlphplell] — REO‏ ‎RIGLP-ROTOTE(T,‏ PIX-OP Color ‏ماس‎

صفحه 19:
0 مرب و ‎fou 2‏ )2 ۱۵۳۱۵۸۵۱۵۵ - [[تا میم 0 - [[2آامآ میم ‎RIGLP-ROTOTE(T,‏ ‎PIX-OP Color ‏ماس‎

صفحه 20:
[[عاماكه حدم ‎teu 2 — Az]‏ ‎LEPT-ROTOTE(T, 2)‏ ‎vvbr{pf{z]] — BLOCK‏ ‎cobrlphplell] — REO‏ ‎RIGLP-ROTOTE(T,‏ PIX-OP Color ‏ماس‎

صفحه 21:

صفحه 22:

صفحه 23:

صفحه 24:

صفحه 25:

صفحه 26:

صفحه 27:

صفحه 28:

صفحه 29:

صفحه 30:

صفحه 31:

صفحه 32:

صفحه 33:
* اگر رر (گره حذف شده) سیاه باشد» در حالات زیر خاصیت ‎ROT‏ ‏نقض مي شود:( د كرهي است كه قبلا فرزند رم بوده است. اكر بر فرزندي نداشته باشد» « گره اب درخت است.) - ,و ريشه درختبودم و فرزند جایگرین‌شده قرمز لستهر > ريشه جدید» قرمز شده است(نقض)) - ()م<(م قرمز است (مع)م, »« > هر دو قرمزند ( نقض 4) - هر مسيري که قبلا شامل گره رو بوده حالا یک گره سياه كمتر از بقیه دارد( نقض 9) حل: فرشم کنیم گرمبر ذاراي یکن نشنان: سیاه اضافی اسث - خاصیت ) نقض مي شود - با یک سري عملیات باسازي و تغیبر رنگ خواص مورد نظر تامین مي شوند

صفحه 34:
‎٩‏ انتقال گره بر به سطوح بالاتر تا جايي که: ‏- »« گرهی‌قرمز و سیاه باشد > مشخصه قرمز آن‌حذفمي‌شود ‏- بسه ‎Ady‏ برسد > مشخصه سیام لضافي‌حذفمي‌شود ‏- > همچنان‌سیاه و سیاه باشد > با چرخش‌هایمناسبمکان‌آندر درخت بادلثر برود

صفحه 35:
© گرم حذفشده و« گرهي‌لستکه قبلافرزند بر بودم لستٍ لگر مر فرزنديندلشته باشدء ,, كره إ» درختلستٍ RB-DELETE-FIXUP(T, x) while x # root[T] and color[x]= BLACK do if x = left[p[x]] then w « right[p[x]] //Four different cases else (same as then clause with "right" and "left" exchanged) color[x] « BLACK

صفحه 36:
۱ T, x) kde x # rool? | od oobrf] = BLOCK bP x = Ap] trea W — rihdp[x]] PB ‏]مارم‎ ۷ 2 0 1 و۵ // ‎BLOCK‏ — ۷۷ ]اند مسا ‎obra] ۰ REO Howe A‏ ‎Case 1‏ // — رم ‎LEED-ROTONE (DM,‏ Ww — righty>] 2 ۶ ۵ ۵ 8ه 9 و « و

صفحه 37:
اصلاح را نگ - ادامه ۵ ‏,)مه‎ x) (Contd.) /* xis still /eft{pLx]] */ ‏إخاط ]حا ع‎ W] = CLOCK ord cobrfrigh{ W]] = CLOCK ‏]سا ما‎ — REO 1 Cree © x= pfx] // phe P ovbrfrighf W]] = ۲ ‏إن ]خط اجا مدا‎ [ — CLOCK = //Owe 9 ‏]با‎ ۷۷ - 0 ۸9 RIGLP-ROTONE(T, w) UCrwse 9 ‏وم0// [لحاصراك يست را‎ ‏[[حآا اس إلا )جامد‎ // & pobr|pfa]] — LOOK 1 Cuse & cobr{righh W]] — BLOCK 1 Cruse & LEED-ROTONE (P, plod) 1 Orwe ©: x— rol? ] 1 Case P eb (sexe oF fea chee Wik “right” cad “EPI” exckeced) ‏جاده .هت‎ — CLOCK

صفحه 38:
حالت اول: رر, قرمز است Ke ON ۰ B y ‏و‎ ‏فرزندان الا سياه هستند‎ © ‏رنك بمو ()م را باهم عوض كن ( دقت كنيد: ()م حتما سياه است! (جرا؟)‎ - (tLe) P(x) ‏مر مياه‎ ‏برادر جديد سياه است. زيرا يكي از فرزندان بيشين رمد است‎ - ‎٩‏ نهایتا گره « داراي دو سیاه و گره ررر داراي یک سیاه است - يكي از حالات 0 4 اتفاق مي افتد

صفحه 39:
دوم: رم و فرزندانش سیاه هستند new x 2 ‏تك‎ ‎SS ‎a 8 < ‏کم‎ ‎۷ 8 3 * یرو فرزندانش سیاه هستند 8 - از كره »و ءى يك سياه كم كرده و به يدر اين دو يك سياه اضافه كن - حالا كره « داراي يك سياه است و يك كره عادي است - ()م دا لیب کمشخصه سیام لضاقي‌لست> اللگوریتم را از « جديد؛ ()م ادلمه سدم © اگر («)م قرمز بوده و از حالت اول به این حالت آمده ایم ‎clea | p(x) By =‏ کن > الگوریتم خاتمه پیدا مي کند

صفحه 40:
راست سیاه هستند و فرزند چپ قرمز است سرو فرزند رلستسیاه هنند و فسرزند چپقرمز است 12 رنك رمدو فرزند جب را باهم عوض كن rich! rotte(u) — - م سياه لستو حالف رزند راستآن‌قرمز لست چند تغییر رنگي‌ساده لازم لس

صفحه 41:
م: رمه سياه و فرزند راست آن قرمز, است 2 5 8 © حالت جهارم: رس سياه و فرزند راست آن قرمز است - ربررا مشابه (م)م رنگکن - (م)م و فرزند رلسترر, را سیام رنگکن - دام دص خاصا. - سیاه اضافي گره »« را حذف کن > پایان الگوریتم! - براي يايان الكوريتم ‎ »‏ جدید به ريشه درخت اشاره مي كند!

صفحه 42:
9حذف گره : (۰ )6 ‎٩‏ تامین خاصیت رنگي - تنها حالت دوم ممکن است تکرار شود - در هر تکرار گره « یک سطح در درخت بالاتر مي رود - حداکثر تکرار این مرحله از الگوریتم ارتفاع درخت است O (bry 7) giles Aaja @

صفحه 43:
‎e‏ ۲ در خنجستجويدودويی | مشخصه لضافه "رنگ‌لست ‎٩‏ با مدیریت خواص /309)مي توان تمام عملیات درخت جستجوي دودويي را با هزینه (ه ب)) انجام داد که در آن ب تعداد گرههاي درخت است ‏عملیات حذف و اضافه کردن گره به درخت ممکن است سبب نقض خواص رنككي “09001 شوند. در اين صورت بايد درخت را ‏از نظر رنكي اصلاح كرد

صفحه 44:
‎٩‏ الگوريتمي بنویسید که یک درخت جستجوي دوديي رنگ شده را بكيرد و تعيين كند آيا اين درخت یک درخت سياه و قرمز است یا نهر ‏© آيا مي توانيد الگوريتمي در حالت كلي ارائه دهید که هر درخت دلخواهي را به درخت ۲69 تبدیل کند ؟مرتبه اجرايي الگوریتم ‏شما چیست ؟

جهت مطالعه ادامه متن، فایل را دریافت نمایید.
29,000 تومان