Пожалуйста, несите меня, я новичок в stackoverflow, поэтому позвольте мне попытаться объяснить мою проблему, если есть какие-то моменты, которые я мог бы улучшить в моем вопросе, пожалуйста, комментарии, и я буду редактировать постановка вопросаЗаказ связанного списка по значению -
Хорошо, так что я получил себе Связанный список, я хочу заказать его значение в списке, который, случается, цена:
tmpPtr->item->price;
Проблема, с которой я столкнулась, заключается в переключении позиций, вот код:
struct inventory *sort_list() {
struct inventory *tmpPtr = pFirstNode;
struct inventory *temp = NULL;
struct inventory *tmpNxt = pFirstNode->next;
int tmp;
while(tmpNxt != NULL){
while(tmpNxt != tmpPtr){
if(tmpNxt->item->price < tmpPtr->item->price){
// if next item price is smaller than current
// temp for the next item
// heres the problem....
temp = tmpNxt->next;
tmpNxt->next = tmpPtr;
tmpPtr->next = temp;
}
else{
// if not any smaller continue
tmpPtr = tmpPtr->next;
}
}
tmpPtr = pFirstNode;
tmpNxt = tmpNxt->next;
}
return tmpPtr;
}
Значения не приказывать, как я ожидал от моей логики, любые указатели было бы здорово EDIT:
struct inventory *sort_list() {
struct inventory *tmpPtr = pFirstNode;
struct inventory *temp = NULL;
struct inventory *tmpNxt = pFirstNode->next;
while(tmpNxt != NULL){
while(tmpNxt != tmpPtr){
if(tmpNxt->item->price < tmpPtr->item->price){
// if next item price is smaller than current
// temp for the next item
if(tmpPtr == pFirstNode){
tmpPtr = pFirstNode->next; // tmpPtr is now second node
pFirstNode->next = tmpPtr->next;
tmpPtr->next = pFirstNode;
pFirstNode = tmpPtr;
}
tmpNxt = tmpPtr->next;
tmpPtr->next = tmpNxt->next;
tmpNxt->next = tmpPtr;
temp->next = tmpNxt;
}
}
temp = tmpPtr;
}
return tmpPtr; // Place holder
}
[вздох] бежать под вашим отладчиком, пройти, проверять переменные, делать заметки, исправлять свои ошибки/с. –
Я все это не могу обойти, почему еще я бы поставил вопрос @MartinJames – Blarsssss
@Blarsssss, он этого не знал. Многие пользователи ленивы. :) Не могли бы вы разместить минимальный пример? Я внедрил сортировку для списков, которые могут повысить ваш уровень: https://gsamaras.wordpress.com/code/list-mergesort-c/ – gsamaras