נושאים פעיליםנושאים פעילים  הצגת רשימה של חברי הפורוםרשימת משתמשים  חיפוש בפורוםחיפוש  עזרהעזרה
  הרשמההרשמה  התחברותהתחברות RSS עדכונים
תיכנות
RSS UnderWarrior Forums : RSS תיכנות
נושא

נושא: עזרה, גרף -BFS

שליחת תגובהשליחת נושא חדש
כותב
הודעה << נושא קודם | נושא הבא >>
אור
אורח
אורח


הצטרף / הצטרפה: 01 October 2003
משתמש: אונליין
הודעות: 12647
נשלח בתאריך: 08 July 2007 בשעה 23:13 | IP רשוּם
ציטוט אור

אני מנסה לעשות BFS על גרף (לא מכוון) אבל משום מה קודקוד המקור מסרב להיצבע... למישהו יש מושג מה הבעיה? זה די דחוף...

קוד:

int i,n;
       City **my_queue;
        City *head;
         Adjacent  *adj;
        for(i=0; i<Size; i++)
        {  
         head_city.colour=WHITE;
           head_city.distance=Size+1;
           head_city.parent=NULL;
        }
        source.colour=GRAY;
        source.distance=0;
        source.parent=NULL;
         
my_queue=(City**)calloc(Size, sizeof(City*));
    assert(my_queue!=NULL);
        my_queue[0]=&source; 
         [0]->colour);
        i=0;
        n=1;
        while(i<n)
        {
          
          head=my_queue;
                 i++;

           adj=head->next;
           while(adj!=NULL)
           {
                 if(adj->city->colour==WHITE)
                   {
                             adj->city->colour=GRAY;
                            adj->city->distance=head->distance+1;
                              adj->city->parent=head;
                            my_queue[n]=adj->city;
                            n++;
                 }
             adj=adj->next;
           }
                            head->colour=BLACK;
                                 }
}

המבנים הם:

קוד:

typedef struct City_t
{
 char* name;
 struct Adjacent_t *next;
 int colour;
 int distance;
 struct City_t * parent;
}City;


typedef struct Adjacent_t
{
 struct City_t *city;  
 struct Adjacent_t *next;
}Adjacent; 

הגרף הוא מערך של סטרקטים מסוג city -המערך נקרא city_head כאשר לכל סיטי יש רשימה מקושרת של השכנים שלה- מסוג adjacent

הצבעים לבן אפור ושחור מוגדרים להיות 1,0,1-

רק בפעם הראשונה,כשhead הוא קודקוד המקור, הצבע משתנה לכאורה (הצבעים נכונים כשאני מדפיסה את  head->colour אבל כשאני מדפיסה את  head_city.colour ו iהמקור, הצבע לא תואם.)

אני כבר נואשת... למישהו יש רעיון?

חזרה לתחילת העמוד הצג את כרטיס החבר של אור חפש הודעות אחרות של אור בקר בדף הבית של אור
 
צחי@
משתמש חבר
משתמש חבר


הצטרף / הצטרפה: 02 January 2007
מדינה: Israel
משתמש: מנותק/ת
הודעות: 209
נשלח בתאריך: 09 July 2007 בשעה 09:20 | IP רשוּם
ציטוט צחי@

1) איפה את עושה שימוש ב-head_city למעט באיתחול שלו בלולאת ה-for הראשונה ?

2) מה הקשר בין source לרשימת הערים ?

3) אם היית מצרפת קוד מלא, אז היה הרבה יותר קל לעזור לך - כל מה שצריך לעשות זה להריץ ולהסתכל ב-debugger.

4) אם את מצרפת קוד, תעשי uncheck ל-"אפשר שימוש ב-קודי הפורום לכתוב את הודעותיך". 

חזרה לתחילת העמוד הצג את כרטיס החבר של צחי@ חפש הודעות אחרות של צחי@ בקר בדף הבית של צחי@
 

אם ברצונך להגיב לנושא זה עליך קודם להתחבר
אם אינך רשום/ה כבר עליך להרשם

  שליחת תגובהשליחת נושא חדש
גרסת הדפסה גרסת הדפסה

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