שאלת מבחן במבני נתונים ומבוא לאלגוריתמים - האוניברסיטה הפתוחה 2016 - ערימות
הציעו מבנה נתונים , שבאמצעותו ניתן לבצע את הפעולות הבאות בזמנים הנדרשים ( מציין את מספר האיברים ב- ומפתחותיהם לא בהכרח שונים זה מזה):
- : בניית המבנה מסדרה ממוינת של מפתחות; זמן הריצה: .
- : מחיקת האיבר הוותיק ביותר בעל המפתח ; זמן הריצה: .
- : הוספת הערך למפתח האיבר שאליו מצביע ; זמן הריצה: .
הערה: מבנה הנתונים יכול להיות מורכב מכמה מבני נתונים יסודיים.
- : בניית המבנה מסדרה ממוינת של מפתחות; זמן הריצה: .
- : מחיקת האיבר הוותיק ביותר בעל המפתח ; זמן הריצה: .
- : הוספת הערך למפתח האיבר שאליו מצביע ; זמן הריצה: .
הערה: מבנה הנתונים יכול להיות מורכב מכמה מבני נתונים יסודיים.
העתק שאלה
שתף שאלה
סמן כחשוב
סמן כבוצע
שאלה חוזרתהאוניברסיטה הפתוחהמבחן סמסטר ב2016 סמסטר ב | 2016 סמסטר ב
★★★★★
ערימותעצי חיפושסיבוכיותרשימות מקושרות
חשבו על שילוב של עץ חיפוש בינארי מאוזן (לניהול לפי מפתח) עם תור (queue) או מבנה נוסף לניהול סדר הכנסה (וותק). לכל מפתח, שמרו רשימה של האיברים עם אותו מפתח לפי סדר הכנסה.
מבנה הנתונים המוצע: שילוב של עץ AVL (או עץ אדום-שחור) עם תור לכל מפתח.
מבנה:
- עץ חיפוש בינארי מאוזן (AVL) שבו כל צומת מייצג מפתח ייחודי.
- בכל צומת בעץ עם מפתח , מחזיקים תור (מימוש כרשימה מקושרת) של כל האיברים עם מפתח , לפי סדר הכנסה (הוותיק ביותר בראש התור).
- כל איבר מחזיק גם מצביע לצומת בעץ שבו הוא נמצא.
**:** הסדרה ממוינת. בונים עץ AVL מאוזן מהסדרה הממוינת בזמן (בנייה רקורסיבית: הבחר אמצע כשורש, בנה תת-עצים). עבור מפתחות זהים, כל העותקים נכנסים לתור של אותו צומת.
**:** חפש את בעץ ה-AVL בזמן . בצומת המתאים, הוצא את האיבר מראש התור (הוותיק ביותר) בזמן . אם התור התרוקן, מחק את הצומת מהעץ בזמן . סה"כ: .
**:** האיבר נמצא בתור של צומת עם מפתח .
1. הסר את מ- בזמן (אם מחזיקים מצביעים דו-כיווניים ברשימה). אם התרוקן, מחק את הצומת מהעץ: .
2. המפתח החדש הוא . חפש את בעץ: . אם קיים, הכנס את לסוף . אם לא קיים, צור צומת חדש עם מפתח והכנס לעץ: .
סה"כ: .
מבנה:
- עץ חיפוש בינארי מאוזן (AVL) שבו כל צומת מייצג מפתח ייחודי.
- בכל צומת בעץ עם מפתח , מחזיקים תור (מימוש כרשימה מקושרת) של כל האיברים עם מפתח , לפי סדר הכנסה (הוותיק ביותר בראש התור).
- כל איבר מחזיק גם מצביע לצומת בעץ שבו הוא נמצא.
**:** הסדרה ממוינת. בונים עץ AVL מאוזן מהסדרה הממוינת בזמן (בנייה רקורסיבית: הבחר אמצע כשורש, בנה תת-עצים). עבור מפתחות זהים, כל העותקים נכנסים לתור של אותו צומת.
**:** חפש את בעץ ה-AVL בזמן . בצומת המתאים, הוצא את האיבר מראש התור (הוותיק ביותר) בזמן . אם התור התרוקן, מחק את הצומת מהעץ בזמן . סה"כ: .
**:** האיבר נמצא בתור של צומת עם מפתח .
1. הסר את מ- בזמן (אם מחזיקים מצביעים דו-כיווניים ברשימה). אם התרוקן, מחק את הצומת מהעץ: .
2. המפתח החדש הוא . חפש את בעץ: . אם קיים, הכנס את לסוף . אם לא קיים, צור צומת חדש עם מפתח והכנס לעץ: .
סה"כ: .