Я пытаюсь сортировать связанный список по году поля, но мой код неправильный. У меня есть такой список и функции для сортировки связанного списка:Как правильно сортировать список ссылок C
struct sputnik {
char nazvanie[30];
char nazvanie_main[30];
int year;
float d;
int period;
struct sputnik *next;
};
int f_sort (struct sputnik **head,int*count) {
struct sputnik *prev,*current,*buffer, *buf;
int i;
current=*head;
for (i=0;i<*count;i++) {
while (current!=NULL){
prev=current;
buf=current->next;
if (prev->year>buf->year){
buffer=buf->next;
buf->next=prev->next;
prev->next=buffer;
current=prev->next;
}
else{
current=buf->next;
}
}
}
return 0;
}
Количество в моем коде является amoumt элементов в моем списке.
Пожалуйста, перепишите это в виде вопроса. Покажите нам, что вы пробовали до сих пор, и предложите то, что, по вашему мнению, нарушено. – DevNull
Вы разыскиваете 'buf', который пришел из' buf = current-> next; 'без проверки' if (buf! = NULL) '. –
Также ваша функция 'f_sort()' принимает два параметра по ссылке, но не меняет ни один из них. Это не ошибка (если вы не намеревались изменить 'head' в сортировке), просто избыточность. –