Cześć,
Próbuję zrobić ćwiczenie z królikami znalezione na http://www.cplusplus.com/forum/articles/12974/ i mam problem z przeglądaniem listy królików. Gdzieś popełniam błąd w rozumowaniu i funkcja poniżej wywala program gdy ostatni albo pierwszy królik mają być usunięte:
//Funkcja przegląda listę królików i w zależności od potrzeby zwiększa wiek lub usuwa z listy.
void add_age(bunny* bunny_list)
{
bunny* previous = NULL;
bunny* current_bunny=bunny_list;
bunny* temp = NULL;
while(current_bunny != NULL)
{
if(current_bunny->get_age() < 10)
{
current_bunny->grow_bunny();
previous = current_bunny;
current_bunny = current_bunny->next_bunny;
}
else if(previous == NULL) //Jeśli trzeba usunąć pierwszy element.
{
temp = current_bunny->next_bunny;
bunny_list = temp;
delete current_bunny;
current_bunny = temp;
temp = NULL;
bunny_count--;
}
else
{
previous->next_bunny = current_bunny->next_bunny;
delete current_bunny;
current_bunny = previous->next_bunny;
bunny_count--;
}
}
}
Będę wdzięczny za wszelkie wskazówki i uwagi.
Pozdrawiam i życzę Wesołych Świąt!