چرخش درخت

دانشنامه عمومی

چرخش درخت عبارت از یک عملیات بر روی درخت جستجوی دودویی که بدون برهم زدن ترتیب عناصر، ساختار درخت را تغییر می دهد.
در چرخش درخت یک گره به سمت پایین و یک گره به سمت بالا حرکت می کند. چرخش درخت برای تغییر شکل درخت و به خصوص برای کاهش ارتفاع درخت به وسیله حرکت دادن کوچک ترین زیر درخت به سمت پایین و بزرگ ترین زیر درخت به سمت بالا، مورد استفاده قرار می گیرد. بدین وسیله اجرای بسیاری از توابع و عملیات بر روی درخت آسان می گردد.
یک ناهماهنگی در توصیفات متفاوت از نحوه تعریف جهت چرخش های درخت وجود دارد. بعضی معتقدند جهت چرخش درخت وابسته به جهتی است که گره های درخت شیفت داده می شوند در حالی که برخی دیگر می گویند که وابسته به فرزندی است که به جای ریشه قرار می گیرد.
همان طور که در شکل نشان داده شده است، عملیات چرخش به سمت راست بر روی Q به عنوان ریشه درخت انجام شده است؛ بنابراین یک چرخش به راست در درخت صورت گرفته است. نتیجه این عمل چرخش درخت در جهت حرکت عقربه های ساعت خواهد بود. در مقابل چرخش به سمت چپ را در درخت داریم که در نتیجه آن یک حرکت در جهت خلاف عقربه های ساعت انجام می شود. ( در شکل بالا چرخش به چپ بر روی P به نوان ریشه صورت گرفته است ) .
زمانی که یک زیردرخت چرخش می یابد ارتفاع زیردرختی که چرخش بر روی آن انجام شده یک واحد کم می شود در حالی که ارتفاع زیر درخت های دیگر افزایش می یابد. وجود این خاصیت در ایجاد توازن در درخت مفید است.
اصطلاحات Root را برای پدر گره ای که چرخش بر روی آن انجام می شود، Pivot برای پدر جدید گره، RS جهتی ( ضلع ) که چرخش به آن سمت انجام می شود وOS را برای جهت مقابل در نظر بگیرید. در شکل بالا RS و OS به ترتیب C و P می باشند. شبه کد چرخش به صورت زیر می باشد:
Pivot = Root. OS Root. OS = Pivot. RS Pivot. RS = Root Root = Pivot عملیات چرخش در یک زمان ثابت انجام می شود. برنامه نویسان باید توجه کنند که پدر ریشه بعد از چرخش به Point اشاره کند.
چرخش درخت پیمایش بین ترتیب درخت را به صورت ثابت ( غیر بازگشتی ) درمی آورد در نتیجه ترتیب عناصر تحت تأثیر چرخش هر بخش در خت قرار نمی گیرد. در زیر پیمایش میان ترتیب در خت ها آورده شده است:
Left tree: ( ( A, P, B ) , Q, C ) Right tree: ( A, P, ( B, Q, C ) ) مثال زیر یک کد به زبان پایتون است که محاسبه بالا را انجام می دهد:
عکس چرخش درختعکس چرخش درخت
این نوشته برگرفته از سایت ویکی پدیا می باشد، اگر نادرست یا توهین آمیز است، لطفا گزارش دهید: گزارش تخلف

پیشنهاد کاربران

بپرس