ABA


"צריך עזרה בבניית עץ אינטרוולים"
גירסת הדפסה        
קבוצות דיון פיתוח, תיכנות ובניית אתרים נושא #21815 מנהל    סגן המנהל    מפקח   Winner    צל"ש   מומחה  
אשכול מספר 21815
The Slayer 
חבר מתאריך 29.4.03
7959 הודעות, 2 פידבק
   01:58   20.09.16   
אל הפורום  
  צריך עזרה בבניית עץ אינטרוולים  
 
   ערכתי לאחרונה בתאריך 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 הוא לא אותו מצביע שנכנסתי איתו לתוכנית

מה אני עושה עם זה? חחח
מקווה שהכל ברור
אני יכול "לרמות" ולשים ערכים בערך ההתחלתי וברגע שאני נכנס לפונקציה למחוק אותם אבל זה לא הפיתרון כמובן כי הפונקצייה צריכה לעבוד על משתנה ריק

תודה ענקית לעוזרים



                                שתף        
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד

  האשכול     מחבר     תאריך כתיבה     מספר  
  הצלחתי עם איזה משהו אני לא יודע כמה הוא ''חוקי'' The Slayer  20.09.16 02:40 1
  הסתדרתי בסוף (פתרון למעוניינים) The Slayer  20.09.16 23:54 2
     סחטיין שהצלחת לפתור את זה.. inno3D 21.09.16 03:15 3
         העץ פשוט מכיל נתונים וקישורים לימין ושמאל The Slayer  21.09.16 03:34 4
             עץ לא ״פשוט מכיל נתונים וקישורים״ inno3D 21.09.16 04:00 5

       
The Slayer 
חבר מתאריך 29.4.03
7959 הודעות, 2 פידבק
   02:40   20.09.16   
אל הפורום  
  1. הצלחתי עם איזה משהו אני לא יודע כמה הוא ''חוקי''  
בתגובה להודעה מספר 0
 
   שמרתי במשתנה סטטי את פויינטר כפול למשתנה שיצרתי בתוכנית כך שזה משמש מצביע לראש של העץ
וראש העץ יכול להיות NULL

בעייה היא השתמשתי קצת בעוד משהו
וגם אם לדוגמא יש לי שני עצים (אפילו שאין במקרה הזה) אז זה לא יעבוד

אבל אני מעדיף לכתוב משהו טוב

אשמח לעזרה


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
The Slayer 
חבר מתאריך 29.4.03
7959 הודעות, 2 פידבק
   23:54   20.09.16   
אל הפורום  
  2. הסתדרתי בסוף (פתרון למעוניינים)  
בתגובה להודעה מספר 0
 
   מגדירים class בתוך class
כאשר הclass הפנימי מכיל נתונים השומרים ערך נקרא לו class1
והclass החיצוני מכיל מצביעים בלבד נקרא לו class2

בתוכנית הראשית מגדירים משתנה מסוג class2 כך שהוא מכיל מצביעים NULL לckass1 ולמצביעים מאותו סוג כלומר class2 ולכן המשתנה הזה לא מכיל בכלל נתונים רק מצביעים

ברגע שמכניסים נתונים מתבצעת הקצאת זיכרון דינמית ונוצר משתנה מסוג class1

כל אתחול שיתבצע ישאיר את המשתנה בתוכנית אבל הערכים שבו יהיו NULL זה כנראה מה שמחפשים

לא ביצעתי הורשה של class1 לתוך class2 אם אתם שואלים
כי אז בclass2 יהיו לי משתנים שערכם 0 ואני צריך שלא יהיו ערכים בלבד


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
inno3D
חבר מתאריך 21.4.02
4533 הודעות
   03:15   21.09.16   
אל הפורום  
  3. סחטיין שהצלחת לפתור את זה..  
בתגובה להודעה מספר 2
 
   בכותרת רשמת שאתה רוצה לבנות עץ. בשום מקום באשכול הזה לא כתבת איפה העץ נמצא
לפי מה שרשמת בתגובה האחרונה, class2 זה העץ.
מציע לך לקרוא מה זה בכלל עץ ואיך בונים כזה מאפס.
אם אתה הולך לעבוד בתכנות זה מינימום לדעת לדעת איל חפש פתרונות באינטרנט


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
The Slayer 
חבר מתאריך 29.4.03
7959 הודעות, 2 פידבק
   03:34   21.09.16   
אל הפורום  
  4. העץ פשוט מכיל נתונים וקישורים לימין ושמאל  
בתגובה להודעה מספר 3
 
   חיפשתי פתרונות באינטרנט פשוט הם לא התאימו למבנה הנתונים שביקשו ולתהליך הבנייה
שזה היה לבנות פונקציית VOID שתהיה בclass על עץ ריק כך שאני לא יכול להשתמש בconstrctor של class

ובאשכול הקודם הכוונו אותי לעץ אינטרוולים שזה היה הפתרון כאן לכן לא רציתי לפרט כדי לא לסבך את העניינים


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
inno3D
חבר מתאריך 21.4.02
4533 הודעות
   04:00   21.09.16   
אל הפורום  
  5. עץ לא ״פשוט מכיל נתונים וקישורים״  
בתגובה להודעה מספר 4
 
   בכותרת אתה מדבר על עץ אבל בפתרון שלך אתה לא משתמש בו.
אתה רק מתעסק באיך לשמור את הנתונים
ברגע שאתה אומר שיש לך עץ או שאתה כותב אותו או שאתה משתמש בו..
הרי אז כל הבעיה זה מה קורה בהוספת נתון (עלה)


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד

תגובה מהירה  למכתב מספר: 
 
___________________________________________________________________

___________________________________________________________________
למנהלים:  נעל | תייק בארכיון | מחק | העבר לפורום אחר | מחק תגובות | עגן אשכול
       



© כל הזכויות שמורות ל-רוטר.נט בע"מ rotter.net