prepd.

שאלת מבחן במבני נתונים ומבוא לאלגוריתמים - האוניברסיטה הפתוחה 2017 - מחסניות

תכננו מבנה נתונים שבאמצעותו ניתן לבצע את הפעולות הבאות בסיבוכיות זמן ריצה של .
אם מעדכנים מבנה נתונים שנלמד בקורס, יש לציין רק מה העדכונים שבצעתם במבנה.

-
- הכנסת איבר בעל המפתח ל-;
-
: מחיקת האיבר שנכנס אחרון מהמבנה ;
-
: החזרת המפתח המינימלי של ;
-
: הכפלת כל המפתחות במבנה במספר הממשי ;
העתק שאלה
שתף שאלה
סמן כחשוב
סמן כבוצע
שאלה חוזרתהאוניברסיטה הפתוחהמבחן סמסטר א2017 סמסטר א | 2017 סמסטר א
מחסניותסיבוכיות
השתמשו במחסנית עם מינימום. לגבי פעולת — במקום לעדכן את כל האיברים, שמרו מכפיל גלובלי.
מבנה הנתונים: מחסנית כפולה עם מכפיל גלובלי.

נשמור:
1. **מחסנית
** — כל תא מכיל זוג כאשר הוא הערך ה"מנורמל" של המפתח ו- הוא המינימום המנורמל מהתחתית ועד לתא הנוכחי.
2. **משתנה גלובלי
** — מכפיל מצטבר, מאותחל ל-.

המפתח האמיתי של איבר עם ערך מנורמל
הוא .

insert(S, x):
הערך המנורמל הוא
.
המינימום המנורמל החדש:
(או אם המחסנית ריקה).
דוחפים
למחסנית.
זמן:
.

deleteLast(S):
שולפים מראש המחסנית (pop).

זמן:
.

minKey(S):
מחזירים
.
זמן:
.

mult(S, d):
מעדכנים
.
זמן:
.

הערה חשובה: כאשר
, המינימום עלול להשתנות (כי הכפלה במספר שלילי הופכת סדר). צריך לשמור גם מקסימום מנורמל בכל תא. אם המינימום האמיתי הוא , ואם המינימום האמיתי הוא .

לכן כל תא במחסנית יכיל
כאשר ו- הם המינימום והמקסימום המנורמלים.

: אם מחזירים , אחרת .