אוניברסיטת ת"א סמסטר א' ,תשע"ד תרגיל בית 7במבני נתונים תזכורת :על כל התשובות להיות מנומקות. שאלה 1 תזכורת להגדרה של עץ בינומי :עץ מדרגה 0צומת בודד ללא ילדים (רק שורש) .עץ מדרגה :kשורש של עץ מדרגה k-1תלוי על שורש של עץ מדרגה k-1אחר (כמו שהראנו בתרגול). בהינתן ההגדרה הנ"ל ,הוכיחו את התכונות הבאות של עצים בינומיים מדרגה :k א. ב. ג. ד. בעץ יש 2kצמתים. לעץ עומק ( kעומק = מספר הקשתות במסלול הארוך ביותר משורש לעלה). לשורש של העץ kילדים ,שהם שורשים של עצים בדרגות .0,…,k-1 ( kמעל ,dמקדם בינומי). מספר הצמתים בעומק dבעץ הוא שאלה 2 הציגו מימוש בעל סיבוכיות זמן ריצה אסימפטוטי (כפונקציה של גודל הערימה) טובה ככל שתוכלו עבור הפעולה ) ,split(rשנגדיר על ערימה בינומית כלהלן: הפעולה מתבצעת על ערימה בינומית בעלת nאיברים. הנתון הוא מספר שלם .1≤r≤n-1 התוצאה היא חלוקה של הערימה הנתונה לשתי ערימות בינומיות בגדלים rו.(n-r)- איברי הערימה המקורית המתחלקים שרירותית בין שתי הערימות החדשות. שאלה 3 ענו על השאלה הבא עבור כל סוג ערימה .נוסיף לערימה פעולה ) ,whereToInsert(xשמקבלת עדיפות ,xומחזירה באיזה אינדקס במערך בערימה בינארית או באיזה דרגה של עץ הוא יוכנס אם הוא היה מוכנס .אין לשנות את הערימה ,רק להחזיר מה היה קורה אילו הערך היה מוכנס. א .ערימה בינארית (מקום במערך שבו היה יושב הערך בתום פעולת ההכנסה). ב .ערימה בינומית (דרגת העץ אליו היה מוכנס בתום פעולת ההכנסה). ג .ערימת פיבונצ'י (דרגת העץ אליו היה מוכנס בתום פעולת ההכנסה). שאלה 4 השאלה מתייחסת לערימה בינומית עצלה. בכיתה ראיתם מימוש חליפי ל .successive linking-עוברים על כל העצים :שמים את העץ בתא שלו לפי הדרגה. אם אין שם עץ ,העץ עובר לרשימה הסופית כמו שהוא .אם יש שם עץ ,מבצעים linkingואז מעבירים את התוצר לרשימה הסופית. נכניס לערמה בינומית עם מימוש חליפי זה של ( successive-linkingומימוש שאר הפעולות כפי שהוגדר בכתה) את האיברים 1,2,3,4,….,nואז נבצע שתי פעולות delete-minבזו אחר זו. א .מהי סיבוכיות הזמן של כל אחת מפעולות delete-minאלו? מהי סיבוכיות הזמן של כל אחת מפעולות אלו אם successive-linkingממומש בדרך המקורית? ב .הוכח חסם על ה amortized-time-של delete-minעם המימוש של successive-linkingהחלופי ,ו- findmin, insert, meldממומשות כפי שתואר בכיתה.
© Copyright 2024