→ חזרה לעמוד הקודם
// סיכום וחומר לימוד

סיכום תור

מבני נתונים · 899271תור

תור - Queue<T>

תור הוא מבנה נתונים שמיועד לאחסן אובייקטים בסדר שבו הם נכנסים. הוא פועל בשיטת FIFO - First In, First Out: האובייקט שנכנס ראשון הוא גם זה שיוצא ראשון.

תכונות עיקריות

האיבר הראשון שנכנס לתור יוצא ראשון. התור דינמי: אפשר להסיר איברים מראש התור ולהכניס איברים לסופו.

קטע קוד, טבלה או תרשים מתוך המקור

פעולות במחלקה

  • Queue() - פעולה הבונה תור חדש וריק.
  • Insert(T value) - מקבלת איבר ומכניסה אותו לסוף התור.
  • Remove() - מסירה את האיבר מראש התור ומחזירה אותו.
  • Head() - מחזירה את האיבר שבראש התור, ללא הסרתו.
  • IsEmpty() - מחזירה true אם התור ריק, ו-false אחרת.

שימוש וסריקה

כדי לקבל את האיבר הבא בתור יש להוציא את האיבר הראשון. ללא שינוי התור אפשר לגשת בכל פעם לאיבר שבראשו בלבד.

בדרך כלל לא ידוע מספר האיברים בתור, ולכן נשתמש בלולאת while. תנאי הלולאה הוא while (!q.IsEmpty()), כאשר q מייצג את התור. ממשיכים כל עוד התור אינו ריק, כי כדי לגשת לאיבר הבא צריך להסיר את הקודם.

שמירה על התור המקורי

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

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

דוגמה: העברה לתור עזר

קטע קוד, טבלה או תרשים מתוך המקור

עכשיו מתרגלים

תרגול בנושא תור

  1. תרגולתרגול תור
  2. משחק לתרגולפקק תנועה-מחסנית ותור
הורדת הקובץ המקוריPDF · סיכום תור