logo

מחסנית לעומת תור

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

מה זה סטאק?

מבנה נתונים. במקרה של מערך, גישה אקראית אפשרית, כלומר, ניתן לגשת לכל אלמנט של מערך בכל עת, בעוד שבמחסנית, הגישה הרציפה אפשרית רק. זהו מיכל שעוקב אחר כלל ההכנסה והמחיקה. זה הולך לפי העיקרון LIFO (אחרון נכנס ראשון) שבו ההכנסה והמחיקה מתבצעות מצד אחד המכונה א חלק עליון . במחסנית, אנו יכולים להכניס את האלמנטים של סוג נתונים דומה, כלומר, לא ניתן להכניס את רכיבי סוג הנתונים השונים לאותה מחסנית. שתי הפעולות מבוצעות ב-LIFO, כלומר, לִדחוֹף ו פּוֹפּ מבצע.

מחסנית לעומת תור

להלן הפעולות שניתן לבצע על הערימה:

    push(x):זוהי פעולה שבה האלמנטים מוכנסים בחלק העליון של הערימה. בתוך ה לִדחוֹף פונקציה, עלינו להעביר אלמנט אותו אנו רוצים להכניס לערימה.פּוֹפּ():זוהי פעולה שבה האלמנטים נמחקים מהחלק העליון של הערימה. בתוך ה פּוֹפּ() פונקציה, אנחנו לא צריכים להעביר שום ארגומנט.peek()/top():פונקציה זו מחזירה את הערך של האלמנט העליון ביותר הזמין בערימה. בדומה ל-pop(), הוא מחזיר את הערך של האלמנט העליון, אך אינו מסיר את הרכיב הזה מהמחסנית.זה ריק():אם המחסנית ריקה, הפונקציה הזו תחזיר ערך אמיתי או שהיא תחזיר ערך שקר.זה מלא():אם המחסנית מלאה, הפונקציה הזו תחזיר ערך אמיתי או שהיא תחזיר ערך שקר.

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

    סטָטִי:היישום הסטטי של המחסנית יכול להיעשות בעזרת מערכים.דִינָמִי:היישום הדינמי של המחסנית יכול להיעשות בעזרת רשימה מקושרת.

מהו התור?

א

קווי דמיון בין מחסנית לתור.

ישנם שני קווי דמיון בין המחסנית לתור:

    מבנה נתונים ליניארי
    גם המחסנית וגם התור הם מבנה הנתונים הליניארי, מה שאומר שהאלמנטים מאוחסנים ברצף וניגשים אליהם בהרצה אחת.גמיש בגודל
    גם המחסנית וגם התור גמישים בגודלם, מה שאומר שהם יכולים לגדול ולהתכווץ בהתאם לדרישות בזמן הריצה.

הבדלים בין מחסנית לתור

מחסנית לעומת תור

להלן ההבדלים בין הערימה לתור:

בסיס להשוואה לַעֲרוֹם תוֹר
עִקָרוֹן הוא פועל לפי העיקרון LIFO (Last In- First Out), שמרמז שהאלמנט שיוכנס אחרון יהיה הראשון שיימחק. הוא פועל לפי העיקרון FIFO (First In-First Out), מה שמרמז שהאלמנט שמתווסף ראשון יהיה האלמנט הראשון שיוסר מהרשימה.
מִבְנֶה יש לו רק קצה אחד שממנו מתבצעות גם ההחדרה וגם המחיקה, והקצה הזה ידוע כטופ. יש לו שני קצוות, כלומר, קצה קדמי ואחורי. הקצה הקדמי משמש למחיקה ואילו הקצה האחורי משמש להכנסה.
מספר המצביעים בשימוש הוא מכיל רק מצביע אחד המכונה מצביע עליון. המצביע העליון מחזיק את הכתובת של הרכיב האחרון שהוכנס או האלמנט העליון ביותר של הערימה. הוא מכיל שני מצביעים קדמיים ואחוריים. המצביע הקדמי מחזיק את הכתובת של האלמנט הראשון, ואילו המצביע האחורי מחזיק את הכתובת של האלמנט האחרון בתור.
פעולות שבוצעו הוא מבצע שתי פעולות, דחיפה ופופ. פעולת הדחיפה מכניסה את האלמנט לרשימה בעוד פעולת הפופ מסירה את האלמנט מהרשימה. הוא מבצע בעיקר שתי פעולות, תור וסירוגין. פעולת ה-enqueue מבצעת את הכנסת האלמנטים לתור בעוד פעולת dequeue מבצעת את מחיקת האלמנטים מהתור.
בחינת המצב הריק אם top==-1, מה שאומר שהמחסנית ריקה. אם קדמי== -1 או קדמי = אחורי+1, כלומר התור ריק.
בדיקת מצב מלא אם top== max-1, מצב זה מרמז שהמחסנית מלאה. אם rear==max-1, מצב זה מרמז שהמחסנית מלאה.
גרסאות אין לזה סוגים כלשהם. זה משלושה סוגים כמו תור עדיפות, תור מעגלי ותור כפול.
יישום יש לו יישום פשוט יותר. יש לו יישום מורכב יחסית מאשר מחסנית.
רְאִיָה מחסנית מוצגת כאוסף אנכי. תור מוצג כאוסף אופקי.