Witam
interesuje mnie funkcja w postaci void (); sortujaca. zamieniająca wyłącznie next'y.
W pewnym momencie źle sortuje najprawdopodobniej w głowie.
Nie mogę znaleźć tego momentu. Jakieś pomysły ?
void sortLista()
{
struct lista *pointer = head;
struct lista *temp1,*temp2,*temp3;
if (head == NULL)
{
printf("There is nothing to sort my friend go add some elements by using addLista...");
}
else
{
while (pointer->next->next!=NULL)
{
if (head->freq>head->next->freq)
{
temp3 = head->next->next;
temp2 = head->next;
temp1 = head;
head = temp2;
head->next = temp1;
head->next->next = temp3;
}
if (pointer->next->freq>pointer->next->next->freq)
{
temp1=pointer->next;
temp2=pointer->next->next;
temp3=pointer->next->next->next;
pointer->next=temp2;
pointer->next->next=temp1;
pointer->next->next->next=temp3;
pointer = head;
}
else
{
pointer=pointer->next;
}
}
}
}
Będę wdzięczny za pomoc.