אוספים
מערך הוא אחד מני סוגים רבים של אוספים. לסוג הבסיסי של המערך, ישנם היתרונות הבאים: צריכת זכרון נמוכה (יש לך רק את הזכרון שתופסים האלמנטים), וזמן גישה-על-פי-אינדקס אפסי. הוא גם מאוד פשוט לישום ושימוש. ישנם סוגים רבים אחרים של אוספים, שיש להם יתרונות אחרים. למערך (הכי) בסיסי, אגב, מוקצה זכרון על פי מספר אלמנטים ידוע מראש, וכל תוספת, מחייבת עדכון של גודל ההקצאה. מערך טיפה יותר משוכלל, יכלול אלגוריתם של גדילה על פי דלתה, כמו שהוזכר כאן על ידי אחרים. אתה רוצה משהו, שתהיה לו תכונה שאין למערך בסיסי: יעילות גדולה בהגדלה של מספר האלמנטים. יש שיטות לעשות את זה, כמו למשל sparsed arrays, אבל השאלה היא, מה כל הדרישות מאותו אוסף? צריך להסגר על הדרישות, ואז לבחור משלל האפשרויות שישנן, שכוללות גם דברים פשוטים, כמו רשימה מקושרת, או דו-מקושרת, hash tables, btree, binary-tree, red-black tree...