Witam. Mam problem z zagadnieniem opisanym w wątku, a szerzej chodzi o funkcję rozdzielająca na dwie podlisty względem tego czy element jest parzysty bądź nie. Oto kod funkcji
void podzielListe(dane * head, dane * a, dane * b)
{
dane * parz = a;
dane * nParz = b;
dane * ls = head;
if(head)
{
while(head)
{
if(head->a %2)==0)
{
if(parz==NULL)
{
parz= head;
parz->next = 0;
}
else if(parz != NULL)
{
dane * p = parz;
while(p->next)
p = p->next;
p->next = head;
p->next->next = 0;
}
}
head = head->next;
}
}
}
a main:
dane * lbParz = 0;
dane * lbnParz = 0;
podzielListe(one, lbParz, lbnParz);
Jak widać chodzi o to aby nie alokować pamięci na kolejne podlisty ale odwoływać się do listy głównej. Problemem jest ze dla jak na razie istniejacego tylko jednego warunku funkcja zapisuje do lbParz tylko dwa pierwsze elementy listy.
Pozdrawiam