מחלקה Patient מייצגת חולה בחדר מיון, ולה שתי תכונות: id (מספר זיהוי) ו-priority (רמת דחיפות, שלם בין 1 ל-10, ככל שגבוה יותר כך דחוף יותר). סדר הטיפול בחדר המיון מתנהל לפי מחלקה PriorQueue - תור עדיפויות שממומש כרשימה מקושרת (שדה q, הפניה לראש התור): ככל שרמת הדחיפות של חולה גבוהה יותר כך הוא מטופל מוקדם יותר; בין שני חולים בעלי אותה רמת דחיפות, מי שהגיע קודם למיון מטופל קודם.
מחלקה Patient מייצגת חולה בחדר מיון, ולה שתי תכונות: id (מספר זיהוי) ו-priority (רמת דחיפות, שלם בין 1 ל-10, ככל שגבוה יותר כך דחוף יותר). סדר הטיפול בחדר המיון מתנהל לפי מחלקה PriorQueue - תור עדיפויות שממומש כרשימה מקושרת (שדה q, הפניה לראש התור): ככל שרמת הדחיפות של חולה גבוהה יותר כך הוא מטופל מוקדם יותר; בין שני חולים בעלי אותה רמת דחיפות, מי שהגיע קודם למיון מטופל קודם.
public class Patient {
private int id;
private int priority;
// get/Get, set/Set לכל תכונה
}
public class PriorQueue {
private Node<Patient> q; // הפניה לראש התור
}
התור לפני הכנסה (ראש התור מימין לתרשים המקורי, כאן משמאל): רשימה מקושרת של חולים, ממוינת יורד לפי priority.
ראש -> [id=13893,pri=7] -> [id=28834,pri=7] -> [id=72890,pri=6] -> [id=12223,pri=4] -> [id=13335,pri=4] -> [id=33800,pri=4] -> null
התור אחרי הכנסת p (id=11210, priority=6): p נכנס אחרי כל חולה בעל עדיפות >= 6, ולפני הראשון עם עדיפות נמוכה יותר.
ראש -> [13893,7] -> [28834,7] -> [72890,6] -> [11210,6] -> [12223,4] -> [13335,4] -> [33800,4] -> null
ממשו את הפעולה הבאה השייכת למחלקה PriorQueue: Java - public void priorityInsert (Patient p) | C# - public void PriorityInsert (Patient p). הפעולה מקבלת חולה חדש p ומכניסה אותו לתור q בהתאם לכללי המיון שלעיל.
מדי פעם רמת הדחיפות של חולה מסוים משתנה במהלך שהותו בחדר המיון. ממשו את הפעולה הבאה השייכת למחלקה PriorQueue: Java - public void update (int id, int pri) | C# - public void Update (int id, int pri). הפעולה מקבלת מספר זיהוי של חולה הנמצא בתור - id, ומספר - pri המייצג את רמת הדחיפות המעודכנת שלו. הפעולה מעדכנת את רמת הדחיפות של החולה ותמקם אותו בתור לטיפול במקום המתאים לרמת הדחיפות המעודכנת (בהתאם לרמת הדחיפות המעודכנת - pri, החולה הנוכחי - id, יוצב אחרי חולים אחרים שיש בתור כבר באותה רמת דחיפות כאילו הגיע אחריהם למיון).
שאלות ותגובות על השאלה
🎓 לא הבנתם משהו? קבלו הסבר נוסף ממרצה לתכנות
שאלו כאן — ותקבלו מענה מוסמך.