Cześć!
Mam problem z wstawianiem elementu do listy na konkretne miejsce. Chcę, aby gotowy adres do wydarzenia(rekord) był wstawiany chronologicznie tj. żeby każde poprzedzające wydarzenie było wcześniej a następne później. O ile wstawianie jako pierwszy element działa dobrze, o tyle już w środku listy nic się nie dzieje. Latałem z debuggerem i wskazywał, że nic się nie dzieje z pierwotną listą. Gdy wypisuję to tylko wtedy widze moje wydarzenie, gdy jest wstawione jako pierwsze.
void inputEvent(Lista *&list, Lista *&data)
{
if(!data)
return;
Lista *tmp=list;
if(data->event.month<=list->event.month)
{
if(data->event.day<list->event.day&&data->event.month==list->event.month)
{
data->next=list;
list=data;
return;
}
if(data->event.month<list->event.month)
{
data->next=list;
list=data;
return;
}
}
else
{
while(tmp->next)
{
if(data->event.month<=tmp->next->event.month)
{
if(data->event.day<tmp->next->event.day&&data->event.month==tmp->next->event.month)
{
data->next=tmp->next;
tmp->next=data;
return;
}
if(data->event.month<list->event.month)
{
data->next=tmp->next;
tmp->next=data;
return;
}
}
tmp=tmp->next;
}
}
}
Z góry dzięki za pomoc