Professional Documents
Culture Documents
פרק 19 - תור
פרק 19 - תור
פרק 19
מבני נתונים – תור Queue -
החזר Q
• כל איבר בתור המייצג מספר דרכון יצא מתחילת התור ויכנס אל
סופו.
• כאשר מחרוזת הדמה תחזור להיות ראשונה ,הושלם למעשה
סיבוב של כל איברי התור.
מספר-אנשים ()Q
הכנס-לתור (”)Q,”000
count 0
כל עוד ראש-התור ( )Qשונה מ ,"000"-בצע:
הוצא-מתור (x )Q
הכנס-לתור ()Q,x
count count + 1
הוצא-מתור (x )Q
החזר count
SCE-Chapter 19 Shayke Bilu PhD
תור – פתרון תרגול – 1חלופה ב'
בדרך ב' ,נשתמש בתור עזר על מנת למנות את מספר האיברים בתור.
נעביר את כל איברי התור המקורי לתור עזר ,ולאחר מכן נחזיר אותם חזרה.
מספר-אנשים ()Q
אתחל-תור Q1
count 0
כל עוד לא תור-ריק? ( ,)Qבצע:
הוצא-מתור (x )Q
הכנס-לתור ()Q1,x
count count + 1
כל עוד לא תור-ריק? ( ,)Q1בצע:
הכנס-לתור (הוצא-מתור ()Q ,)Q1
החזר count
{ typedef struct
;node *head, *rear
;} queue
SCE-Chapter 19 Shayke Bilu PhD
מימוש תור
כדי להיכנס לבניין ,לילך צריכה להקיש קוד המורכב מספרות,
שכל אחת מהן היא 3,2,1או ,4ולבסוף להקיש סולמית.
ניתן להקיש ספרה יותר מפעם אחת.
לילך שכחה את הקוד ,אך זכרה שסכום הספרות שלו הוא .10
מהו מספר האפשרויות השונות שתצטרך לילך לבדוק ,במקרה
הגרוע ביותר ,עד שתגיע לקוד הנכון ,אם מספר הספרות להקשה
הוא בדיוק ?4
למשל ,אם הסכום היה ( 4במקום ,)10אז התשובה הייתה ,1כי
הדרך היחידה להגיע לסכום 4עם 4ספרות היא .1,1,1,1
שימו לב שסדר הקשת הספרות הוא חשוב.
SCE-Chapter 19 Shayke Bilu PhD
תור קדימויות
תור קדימויות ( ,)priority queueהמכונה לעיתים גם תור
עדיפויות ,הוא טיפוס נתונים מופשט ,המאפשר לנהל אוסף של
איברים ,שכל אחד מהם כולל גם שדה מידע ( )infoוגם שדה
עדיפות (.)priority
להבדיל מתור רגיל (המתנהל לפי עקרון ,FIFOכלומר – מי
שנכנס ראשון גם יישלף ראשון) ולהבדיל ממחסנית (המתנהלת
לפי עקרון – LIFOמי שנכנס אחרון הוא שיישלף ראשון),
בתור קדימויות השליפה היא לפי סדר העדיפויות – ראשית
יישלף האיבר שעדיפותו היא הגבוהה ביותר.
head NULL
30 20 20 5
44 -5 21 12
מה תהיה הסיבוכיות של פעולות הממשק?
איחזור המקסימום יתבצע בזמן קבוע (.Θ)1
נמקו מדוע! הוצאת המקסימום תתבצע בזמן קבוע (.Θ)1
הכנסת איבר חדש תתבצע בזמן לינארי (.Θ)n