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

ברצוננו לממש תור באמצעות שתי מחסניות ו-, כך שעבור פעולות הכנסה ו- פעולות מחיקה, בסדר אפשרי כלשהו (), על ריק מלכתחילה, זמן הריצה (כלומר כמות הפעולות הבסיסיות – push ו-pop) יהיה .

תארו את מבנה המימוש וכתבו בפסאודו-קוד את הפעולות ENQUEUE ו-DEQUEUE של בעזרת פעולות המחסניות PUSH ו-POP.
העתק שאלה
שתף שאלה
סמן כחשוב
סמן כבוצע
האוניברסיטה הפתוחהמבחן סמסטר ב · 2023 · סמסטר ב
★★★★★
תוריםמחסניותמבני נתונים
משמשת להכנסות ו- למחיקות. כאשר ריקה ורוצים למחוק, מעבירים את כל התוכן מ- ל-.
מבנה המימוש:

נשתמש בשתי מחסניות:
  • – מחסנית להכנסות
  • – מחסנית למחיקות


פסאודו-קוד:

ENQUEUE(Q, x):
    PUSH(S1, x)
DEQUEUE(Q):
    if S2 is empty:
        while S1 is not empty:
            PUSH(S2, POP(S1))
    return POP(S2)


הסבר: כאשר מכניסים איבר, דוחפים אותו ל-. כאשר רוצים להוציא, אם אינה ריקה, שולפים ממנה (האיבר העליון ב- הוא הראשון שנכנס). אם ריקה, מעבירים את כל ל- (ההיפוך הופך את הסדר כך שהאיבר הראשון שנכנס יהיה בראש ), ואז שולפים.
שאלת מבחן במבני נתונים ומבוא לאלגוריתמים - האוניברסיטה הפתוחה 2023 | prepd