Lista dowiązaniowa - kasowanie elementów

Lista dowiązaniowa - kasowanie elementów
KA
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 30
1

klasa Lista ma następujące składowe:

Kopiuj
    private:
        string id;//identyfikator
        double value;
        Lista *next;

Jeśli w metodzie która ma wyczyścić listę napiszę:

Kopiuj
delete next;

to zostanie usunięty tylko pierwszy napotkany element wraz ze wskźnikiem to dalszej części listy (a reszta pozostanie w pamięci) ?

Nie chcę zostawiać śmieci, a przypuszczam,że tak się stanie.

fasadin
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 4883
2

? nie rozumiem o co Ci chodzi

Kopiuj
while (current->next)
{ 
  ptr * tmp = current->next;
  delete current;
  current = tmp;
}

to jest w pseudokodzie, ale chyba rozumiesz co trzeba napisac

KA
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 30
0

rozumiem

Chodziło mi o to czy tą jedną linijką usunę całą listę,ale po odpowiedzi widzę,że muszę się zająć każdym elementem.

Dzięki

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.