ערכתי לאחרונה בתאריך 20.09.16 בשעה 02:15 בברכה, The Slayer
בהמשך לאשכול שכתבתי לפני זמן מהhttps://rotter.name/nor/prog/21649.shtml
כמובן תודה לכל העוזרים
כל מי שהגיב באשכול באמת נתן לי כיוון
המקום עבודה נתן לי הזדמנות שנייה לבנות את הפתרון מחדש בטענה שהקוד שכתבתי "לא יעיל"
לא שמתי לב שבתרגיל הייתי צריך לשמור את כל האינטרוולים ומה שעשיתי היה לצמצם אינטרוולים חופפים מה שאפילו יותר קשה לביצוע
השאלה היא כזו
נגיד ויצרתי class Rush_Hours שמחזיק משתנים של
; float t_start, t_end שהם התחלה וסוף של אינטרוול
ועם הצבעות לאותו class ימין ושמאל
ב class אני צריך ליצור פונקציית void
void AddTimeSpan(float start_time, float end_time
שמקבלת שני ערכים ומעדכנת אותם בclass
אני מקווה שעד כאן נשמע פשוט
הבעייה היא כזאת
אם נגיד יצרתי משתנה
Rush_Hours *HoursList = NULL
במשתנה HoursList אין כרגע ערכים אם המשתנה כרגע יש בו ערכים של אינטרוול מסויים אז לא בעייה להפעיל את הפונקציה ולהוסיף לה אינטרוול מסויים מימין או משמאל
הבעייות שאני נתקל בהן
1. כרגע אני מפעיל את הפונקצייה על משתנה שהוא NULL ואין בו הקצאת זיכרון אז אני לא יכול לשמור בו ערכים.
2. ברגע שאני נכנס לפונקציה כבן אין לי פויינטר שמצביע למצביע של הNULL כך שאני לא יכול לעשות constructor כי זה ישמר סתם בזיכרון וברגע שאני יוצא מן הפונקציה הערך בתוכנית לא מצביע למה שבניתי בפונקציה
3. חשבתי לבנות משתנה סטטי שיכיל את הhead במקרה והוא ריק אז אני יכול באמת לבנות את העץ על הhead הסטטי הבעייה שוב שזה נשמר בhead ולא במשתנה בתוכנית ואני צריך לקשר את הhead למשתנה בתוכנית והפעולה הזאת לא כלולה בפונקציה
4. אני לא יכול לשלוח לפונקציה מצביע למצביע של המשתנה היא חייבת להיות בצורה הזאת ברגע שאני נכנס לפונקציה הערך של המשתנה הוא NULL ואם אני מבצע (&) לקבל מצביע אז המצביע לNULL הוא לא אותו מצביע שנכנסתי איתו לתוכנית
מה אני עושה עם זה? חחח
מקווה שהכל ברור
אני יכול "לרמות" ולשים ערכים בערך ההתחלתי וברגע שאני נכנס לפונקציה למחוק אותם אבל זה לא הפיתרון כמובן כי הפונקצייה צריכה לעבוד על משתנה ריק
תודה ענקית לעוזרים