עבור לתוכן

צריך עזרה במיון רשימה מקושרת שפת C

Featured Replies

פורסם
  • מחבר

ה if השני והשלישי בודקים כאשר המצביע שונה מ lst->head אם אני לא טועה הם לא עשו לי בעיות

עכשיו סימנתי בפונ' של יצירת רשימה לדוגמא רק את שני הצמתים הראשונים כדי לדמות רשימה של שני צמתים..יכול להיות שאני מפספס משהו, סורי

פורסם
  • מחבר

אוקיי אין יותר else :)

לדעתי ה if הזה לא עשה לי את הצרות, כשהייתי עושה swap על שני צמתים שהם לא בקצוות

פורסם

מה? לא הבנתי. מה הקוד שלך עכשיו? אתה מבין מה הייתה הבעיה בכלל?

חוץ מזה, כמו שאמרתי - היו עוד באגים אחרים.

פורסם
  • מחבר

אני חושב שאיבדתי אותך קצת :s05:

פורסם

אני שואל אם אתה מבין מה היה בכלל הבאג ב-swap.

אני אחזור על עצמי: שכח לרגע מה-tail. תמחק כל התייחסות אליו מהפונקציה swap, וכתוב אותה מחדש. אחרי שתסיים תוסיף אותו בחזרה.

פורסם
  • מחבר


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 השני מפיל את הריצה.. אם אני מוחק אותו אז זה עובד על שני הצמתים הראשונים...

פורסם
  • מחבר

תיקנתי , המון המון תודה

אני עובר לפונק' ה sortList

פורסם

הערה בנוגע להחלפת ראש הרשימה - אם אתה רוצה לשנות את ראש הרשימה תעביר מצביע למצביע:


LIST ** lst

ובשינוי תבצע:


*lst = new_head

פורסם

נראה לי שהתבלבלת - LIST הוא מבנה שמחזיק בתוכו את ראש הרשימה, ולא ראש הרשימה בעצמו.

פורסם

אה.. חח נכון, לא ראיתי את ההגדרה שלו בעמוד הראשון.

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

דיונים חדשים