פורסם 2010 באוגוסט 1115 שנים מחבר ה if השני והשלישי בודקים כאשר המצביע שונה מ lst->head אם אני לא טועה הם לא עשו לי בעיותעכשיו סימנתי בפונ' של יצירת רשימה לדוגמא רק את שני הצמתים הראשונים כדי לדמות רשימה של שני צמתים..יכול להיות שאני מפספס משהו, סורי
פורסם 2010 באוגוסט 1115 שנים מחבר אוקיי אין יותר else לדעתי ה if הזה לא עשה לי את הצרות, כשהייתי עושה swap על שני צמתים שהם לא בקצוות
פורסם 2010 באוגוסט 1115 שנים מה? לא הבנתי. מה הקוד שלך עכשיו? אתה מבין מה הייתה הבעיה בכלל?חוץ מזה, כמו שאמרתי - היו עוד באגים אחרים.
פורסם 2010 באוגוסט 1115 שנים אני שואל אם אתה מבין מה היה בכלל הבאג ב-swap.אני אחזור על עצמי: שכח לרגע מה-tail. תמחק כל התייחסות אליו מהפונקציה swap, וכתוב אותה מחדש. אחרי שתסיים תוסיף אותו בחזרה.
פורסם 2010 באוגוסט 1115 שנים מחבר void swap(LNODE* cur,LNODE* next,LIST* lst){ LNODE* prev; if (cur == lst->head ) { lst->head = next; cur->next = next->next; next->next = cur; } if (cur!=lst->head) { prev = prevNode(*lst,cur); cur->next = next->next; prev->next = next; next->next = cur; }}אוקיי העפתי את ה tail ה if השני מפיל את הריצה.. אם אני מוחק אותו אז זה עובד על שני הצמתים הראשונים...
פורסם 2010 באוגוסט 1415 שנים הערה בנוגע להחלפת ראש הרשימה - אם אתה רוצה לשנות את ראש הרשימה תעביר מצביע למצביע:LIST ** lstובשינוי תבצע:*lst = new_head
פורסם 2010 באוגוסט 1415 שנים נראה לי שהתבלבלת - LIST הוא מבנה שמחזיק בתוכו את ראש הרשימה, ולא ראש הרשימה בעצמו.
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.