prepd.

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

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

תארו את מבנה המימוש וכתבו בפסאודו-קוד את הפעולות ENQUEUE ו-DEQUEUE של
בעזרת פעולות המחסניות PUSH ו-POP.
העתק שאלה
שתף שאלה
סמן כחשוב
סמן כבוצע
שאלה חוזרתהאוניברסיטה הפתוחהמבחן סמסטר ב2023 סמסטר ב | 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)


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