Wenn ich die rekursive Einfügung eines Knotens in die verkettete Liste implementiere und zeige, bekomme ich nichts. Ich verstehe nicht, wie ich das Problem lösen soll.C++ Rekursive Einfügung für eine verkettete Liste
Mein Code ist:
template <class H> class Node {
private:
H key;
Node <H> *next;
public:
Node(H key) {
this->key = key;
next = NULL;
}
Node(H key, Node <H> * next) {
this->key = key;
this->next = next;
}
void setKey(H key) {
this->key = key;
}
void setNext(Node <H> * next) {
this->next = next;
}
H getKey() {
return key;
}
Node <H> *getNext() {
return next;
}
};
template <class H> class LinkedList {
private:
Node <H> *header;
Node <H> * insertHead(Node <H>* header, H data)
{
if (header == NULL)
return new Node <H>(data);
else
header->setNext(insertHead(header->getNext(), data));
return header;
}
public:
LinkedList() {
header == NULL;
}
LinkedList <H> *insert(int x) {
insertHead(header,x);
return this;
}
void print() {
Node <H> *tmp = header;
while (tmp != NULL) {
cout << tmp->getKey() << " ";
tmp = tmp->getNext();
}
}
};
int main() {
LinkedList <int> *lset = new LinkedList <int>();
lset->insert(89)->insert(56)->insert(8);
lset->print();
}
In der Hauptfunktion habe ich eine neue verlinkte Liste erstellt und aufgerufen dann die Insert-Funktion. Ich bin sicher, dass das Problem in der rekursiven Einfügung ist, deshalb kann ich es nicht identifizieren.
Ich sehe keine rekursive Einfügung. – drescherjm
"Knoten * insertHead" –
Tarek
Ihr Problem ist Header ist immer Null, weil Sie übergeben Wert in 'Knoten * insertHead (Knoten * Header, H-Daten) ' –
drescherjm