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

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

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

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

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

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

זמן:
.

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

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

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

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

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