מבני נתונים ואלגוריתמים - מחברת קורס/מבחן סופי מועד א' סמסטר ב' 2007 - שאלות
מתוך ויקיספר, אוסף ספרי הלימוד והמדריכים החופשי.
|
הנחיות
|
תוכן עניינים |
[עריכה] שאלה 1
(~20 נקודות)
בכיתה למדנו כבר על עצי חיפוש בינריים. שאלה זו עוסקת בווריאציה. עץ Foo-Bar מוגדר כך:
- כל צומת הוא אחד משני סוגים: צומת Foo או צומת Bar.
- צומת Bar מחזיק מפתח אחד ו(עד ל)2 ילדים (כמו הצמתים הרגילים שראינו).
- צומת Foo מחזיק 2 מפתחות ו(עד ל3 ילדים.
- העץ מקיים את את תכונת הFoo-Bar - לכל צומת
x:- כל מפתח בתת-עץ שמאלי של מפתח כלשהו, קטן או שווה לו.
- כל מפתח בתת-עץ ימני של מפתח כלשהו, גדול או שווה לו.
- כל המסלולים משורש העץ לעלה ריק (
Nil) בעל אותו אורך בדיוק.
|
דוגמה: צומת Bar |
|
דוגמה: צומת Foo |
|
דוגמה: עץ Foo-Bar להלן דוגמה לעץ Foo-Bar תקין. בעץ זה 3 צמתים (2 מסוג Bar, ו1 מסוג Foo). יש לו 4 מפתחות, וגבהו 2. |
אנא הוכח שעץ Foo-Bar הוא לוגריתמי: אם יש בו
מפתחות וגבהו הוא
, אז
.
|
שימו לב: אל תתייחס לשאלה כיצד ליצור עץ כזה, או כיצד להכניס ולהוציא מפתחות ממנו - זה לא רלוונטי. |
[עריכה] שאלה 2
(~15 נקודות)
נתון גרף
מכוון וקשיר מצומת
כלשהו. לכל קשת יש מחיר. רוצים למצוא את המסלול הזול ביותר מs לכל צומת u כלשהו, אך תחת העדפה למסלולים שארכם (כלומר, מספר קשתותיהם) זוגי.
מציין גודל קנס כלשהו. אם מסלול כלשהו מ
ל
הוא אי-זוגי, יש להוסיף למחיר מסלול זה קנס בגובה
.
אנא תאר אלגוריתם המקבל כקלט את הגרף, טבלת עלויות לקשתות, וגודל הקנס, ומוצא את מחיר המסלול הזול ביותר (במובן שאותו הסברנו כרגע) לכל צומת
. אנא הוכח נכונות ונתח סיבוכיות.
[עריכה] שאלה 3
(~20 נקודות)
בשאלה זו עליך להוכיח חסם תחתון על
, מספר עצי החיפוש הבינריים השונים בעלי
מפתחות שונים זה מזה.
|
דוגמה: נניח שעץ החיפוש מכיל את המפתחות נניח שעץ החיפוש מכיל את המפתחות |
מהדוגמה נוכל להסיק כי
,
,
.
אנא הוכח ש
, כלומר שמספר עצי החיפוש הבינריים גדל בצורה אקספוננציאלית.
[עריכה] שאלה 4
(~35 נקודות)
רשת החומוסיות מק-לאפה מתכננת להקים סניפים רבים לאורך רחוב איבן-גבירול בתל אביב.
מציינים את מספרי הבתים ברחוב בהם יש מקום פנוי להקמת סניף חדש. הרשת שוקלת היכן להקים את הסניפים החדשים:
- מסקר שוק, הרשת מעריכה שבבית מספר
רווחיה הצפויים יהיו
(
הוא מספר חיובי כלשהו). - הרשת אינה מוכנה להקים שני סניפים שמרחקם זה מזה הוא פחות מ
(
הוא מספר שלם חיובי כלשהו).
|
דוגמה: אם |
אנא כתוב אלגוריתם יעיל המקבל את המערך M (המכיל את מספרי הבתים), את המערך P (המכיל את הרווחים הצפויים), ואת המספר k (המציין את מגבלת המרחק), ומדפיס את מספרי הבתים שהקמת הסניפים בהם צפוייה למקסם את הרווחיות. אנא הוכח נכונות ונתח סיבוכיות.
[עריכה] שאלה 5
(~20 נקודות)
במסיבה כלשהי יש
אנשים; חלקם לחץ ידיים זה עם זה. כעת יש להושיב אותם משני צידי שולחן. אנא הוכח שאפשר להושיב אותם באופן כזה כך שכל אחד יושב מול לפחות חצי מהאנשים שאתם לחץ יד.
|
דוגמה: נניח שבמסיבה יש שלשה אנשים: 1, 2, ו3, ורק 1 ו2 לחצו ידיים זה עם זה. אכן אפשר להושיב את 1 ו3 בצד אחד של השולחן, ואת 2 בצד השני. |


. יש 2 עצים מתאימים:
. יש 5 עצים מתאימים:
והרשת בוחרת להקים סניף בבית מספר 135, אסור לה להקים סניף בבית מספר 143, שכן
.