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