Ich versuche, rekursiv durch jeden Knoten in einer List-Klasse zu suchen, ob eine bestimmte Ganzzahl in einem der Knoten in der Liste vorhanden ist.C++: Verwenden von Rekursion, um ein int in einer Liste zu finden - Wann
Dies ist meine Header-Datei:
class List
{
public:
bool find(int d) const { return false; }
private:
Node *head;
bool findNode(const Node*, int) const;
};
Hier ist der Code für zwei Funktionen:
bool List::find(int d) const
{
return findNode(head, d);
}
bool List::findNode(const Node* n, int d) const
{
if (n == NULL)
return false;
else if (n->data == d)
return true;
else
findNode(n->next, d);
}
Nun meine Frage hier ist: Habe ich mich verdammen, indem Sie die if (n == NULL)
Anweisung in der findNode
Funktion damit es immer falsch zurückkehrt? Ich glaube nicht, dass ich das tun muss, wenn ich bereits return false
in der Header-Datei habe. Sollte ich diese Linie entfernen, und gibt es einen besseren Weg, dies zu tun?
Das macht Sinn. Ich HASSE die Header-Datei, aber es wurde mir vom Lehrer gegeben und wir dürfen es nicht ändern (AWFUL Kodierungsstandards, wenn Sie mich fragen ...). Ich würde das in der Header-Datei überhaupt nicht tun, aber Sie bekommen, was Sie bekommen, denke ich. – WitchKing17