2017-11-17 4 views
-2

Ich arbeite an dem Erstellen einer Funktion, die ein Element aus einer verknüpften Liste entfernen wird, jedoch bin ich nicht sicher, wie überprüft wird, ob das Element an die Funktion weitergegeben wird verknüpfte Liste. Aus diesem Grund stürzt mein Programm ab, wenn es eine Eingabe erhält, die es nicht erkennt.Wie überprüft man, ob Daten in der verketteten Liste vorhanden sind C++

Hier ist meine Funktion:

bool StringList::remove(string rmData){ 
    StringNode *current = new StringNode; 
    StringNode *previous = new StringNode; 
    current = head; 
    while(current->data != rmData){ 
     previous = current; 
     current = current->next; 
    } 

    previous->next = current->next; 
} 

Wie kann ich überprüfen, ob die Daten in der Liste vorhanden ist?

+0

Sie sind nicht in der Schleife zu überprüfen, ob Sie das Ende der Liste erreicht haben. Und du verlierst Speicher mit deinen 'neuen' Anrufen. Du brauchst sie hier nicht. – 1201ProgramAlarm

Antwort

0

Sie müssen immer wenn current->next Punkte auf einen Null prüfen, ob so break;

Verwandte Themen