האם נוכל ליישם מחסנית ותור באמצעות רשימה מקושרת?
האם נוכל ליישם מחסנית ותור באמצעות רשימה מקושרת?

וִידֵאוֹ: האם נוכל ליישם מחסנית ותור באמצעות רשימה מקושרת?

וִידֵאוֹ: האם נוכל ליישם מחסנית ותור באמצעות רשימה מקושרת?
וִידֵאוֹ: CS50 2014 - Week 5, continued 2024, נוֹבֶמבֶּר
Anonim

לכל צומת יש ערך ו-a קישור לצומת הבא. שני יישומים פופולריים של רשימה מקושרת הם מחסנית ותור . תוֹר : תוֹר הוא מבנה נתונים, המשתמש בעקרון First in First Out (FIFO). תור יכול לִהיוֹת מוטמע על ידי לַעֲרוֹם , מערך ו רשימה מקושרת.

בהתאם, האם נוכל ליישם תור באמצעות רשימה מקושרת?

א תוֹר יכול להיות בקלות מיושם באמצעות א רשימה מקושרת . ביחיד יישום רשימה מקושרת , עמידה בתור מתרחשת בזנב של רשימה ויציאה בתור של פריטים מתרחשת בראש רשימה . אנחנו צריכים לשמור על מצביע לצומת האחרון כדי לשמור על יעילות O(1) להכנסה.

לאחר מכן, השאלה היא האם רשימה מקושרת היא מחסנית? א לַעֲרוֹם הוא מבנה נתונים עם ממשק והתנהגות מסוימים: ניתן להוסיף אלמנטים ל- לַעֲרוֹם עם "דחיפה" והוסרו עם "פופ", והם מוסרים בסדר אחרון נכנס ראשון. א רשימה מקושרת הוא מבנה נתונים עם קשר מסוים בין אלמנטים בזיכרון.

לגבי זה, האם נוכל ליישם מחסנית באמצעות תור?

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

מהן היישומים של תור?

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

מוּמלָץ: