בכל שאלה שנדרש בה מימוש אפשר להשתמש בפעולות של המחלקות: תור, מחסנית, עץ בינרי וחוליה, בלי לממש אותן. אם משתמשים בפעולות נוספות, יש לממש אותן.
נתונה המחלקה Patient - חולה בחדר מיון, ולה שתי תכונות:
id - מספר הזהות של החולה, מטיפוס שלם.
priority - רמת הדחיפות של הטיפול בחולה. רמת הדחיפות מיוצגת במספר מטיפוס שלם בין 1 ל-10. ככל שהמספר גבוה יותר, רמת הדחיפות גבוהה יותר.
הניחו שלתכונות המחלקה יש פעולות get ו־set.
סדר הטיפול בחולים בחדר המיון מתנהל באופן שלהלן:
ככל שרמת הדחיפות גבוהה יותר, החולה מטופל מוקדם יותר.
כאשר יש יותר מחולה אחד באותה רמת דחיפות, החולה שהגיע קודם מטופל מוקדם יותר.
כדי לשמור על סדר הטיפול נבנתה המחלקה PriorQueue - תור עדיפויות, ולה תכונה אחת:
q - הפניה לתור, מטיפוס Patient.
✎ דוגמה לתור q
ראש התור → id = 13893, priority = 7 | id = 28834, priority = 7 | id = 72890, priority = 6 | id = 12223, priority = 4 | id = 13335, priority = 4 | id = 33800, priority = 4 ← סוף התור
הניחו שהחולים שרמת הדחיפות שלהם זהה מוצגים בדוגמה לפי סדר הגעתם לחדר המיון.
מפרט המחלקה
הפעולה מקבלת חולה חדש - p ומכניסה אותו לתור q בהתאם לכללים של חדר המיון הכתובים לעיל.
Javapublic void priorityInsert (Patient p)
הפעולה מקבלת מספר זהות של חולה הנמצא בתור - id, ומספר - pri המייצג את רמת הדחיפות המעודכנת שלו. הפעולה תעדכן את התכונה priority של החולה ותמקם אותו בתור לטיפול במקום המתאים לו (בהתאם לרמת הדחיפות המעודכנת - pri). אם בתור כבר יש חולים אחרים באותה רמת דחיפות - pri, החולה הנוכחי - id יוצב אחריהם כאילו הגיע אחריהם לחדר המיון.
Javapublic void update (int id, int pri)
משימות
אמשימה א
מימוש50%
ממשו את הפעולה שלפניכם — priorityInsert — השייכת לממשק המחלקה PriorQueue:
✎ לדוגמה
בעבור התור המוצג לעיל והעצם שלפניכם:
p → עצם מטיפוס Patient שבו id = 11210 ו-priority = 6
התור ייראה כך לאחר ההכנסה:
ראש התור → id = 13893, priority = 7 | id = 28834, priority = 7 | id = 72890, priority = 6 | id = 11210, priority = 6 | id = 12223, priority = 4 | id = 13335, priority = 4 | id = 33800, priority = 4 ← סוף התור
במשימה ב
מימוש50%
מדי פעם רמת הדחיפות של חולה מסוים משתנה במהלך שהותו בחדר המיון.
ממשו את הפעולה שלפניכם — update — השייכת לממשק המחלקה PriorQueue:
שפת התכנות שלי
שאלה 5מבני נתונים2024 קיץ מועד אתורסה״כ 25 נק׳
תור עדיפויות לחדר מיון
שימו לב
בכל שאלה שנדרש בה מימוש אפשר להשתמש בפעולות של המחלקות: תור, מחסנית, עץ בינרי וחוליה, בלי לממש אותן. אם משתמשים בפעולות נוספות, יש לממש אותן.
נתונה המחלקה Patient - חולה בחדר מיון, ולה שתי תכונות:
id - מספר הזהות של החולה, מטיפוס שלם.
priority - רמת הדחיפות של הטיפול בחולה. רמת הדחיפות מיוצגת במספר מטיפוס שלם בין 1 ל-10. ככל שהמספר גבוה יותר, רמת הדחיפות גבוהה יותר.
הניחו שלתכונות המחלקה יש פעולות get ו־set.
סדר הטיפול בחולים בחדר המיון מתנהל באופן שלהלן:
ככל שרמת הדחיפות גבוהה יותר, החולה מטופל מוקדם יותר.
כאשר יש יותר מחולה אחד באותה רמת דחיפות, החולה שהגיע קודם מטופל מוקדם יותר.
כדי לשמור על סדר הטיפול נבנתה המחלקה PriorQueue - תור עדיפויות, ולה תכונה אחת:
q - הפניה לתור, מטיפוס Patient.
✎ דוגמה לתור q
ראש התור → id = 13893, priority = 7 | id = 28834, priority = 7 | id = 72890, priority = 6 | id = 12223, priority = 4 | id = 13335, priority = 4 | id = 33800, priority = 4 ← סוף התור
הניחו שהחולים שרמת הדחיפות שלהם זהה מוצגים בדוגמה לפי סדר הגעתם לחדר המיון.
מפרט המחלקה
הפעולה מקבלת חולה חדש - p ומכניסה אותו לתור q בהתאם לכללים של חדר המיון הכתובים לעיל.
Javapublic void priorityInsert (Patient p)
הפעולה מקבלת מספר זהות של חולה הנמצא בתור - id, ומספר - pri המייצג את רמת הדחיפות המעודכנת שלו. הפעולה תעדכן את התכונה priority של החולה ותמקם אותו בתור לטיפול במקום המתאים לו (בהתאם לרמת הדחיפות המעודכנת - pri). אם בתור כבר יש חולים אחרים באותה רמת דחיפות - pri, החולה הנוכחי - id יוצב אחריהם כאילו הגיע אחריהם לחדר המיון.
Javapublic void update (int id, int pri)
משימות
אמשימה א
מימוש50%
ממשו את הפעולה שלפניכם — priorityInsert — השייכת לממשק המחלקה PriorQueue:
✎ לדוגמה
בעבור התור המוצג לעיל והעצם שלפניכם:
p → עצם מטיפוס Patient שבו id = 11210 ו-priority = 6
התור ייראה כך לאחר ההכנסה:
ראש התור → id = 13893, priority = 7 | id = 28834, priority = 7 | id = 72890, priority = 6 | id = 11210, priority = 6 | id = 12223, priority = 4 | id = 13335, priority = 4 | id = 33800, priority = 4 ← סוף התור
במשימה ב
מימוש50%
מדי פעם רמת הדחיפות של חולה מסוים משתנה במהלך שהותו בחדר המיון.
ממשו את הפעולה שלפניכם — update — השייכת לממשק המחלקה PriorQueue: