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

מושגים בסיסיים של Stacks ו- Queues

(ב) ,0 estackigtureFLT:1 , בעקבות העיקרון האחרון-ב-ב-ראשון-Out (LIFO) שבו הוסר לראשונה האלמנט המוסכם האחרון.AFLT:2queueph 3:3 בעקבות העיקרון הראשון-בראשי-הראשון-מ-מראש (FIFO) הסרת האלמנט העתיק ביותר.

שיטות יישום ומסחר

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

המונחים: mit

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

המונחים: list Implementations

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

חלל-זמן מסחר-offs

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

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