Ich habe eine static linkedList mergeSort (linkedList one)
Methode implementiert, die eine LinkedList rekursiv sortiert und funktioniert.display() - Funktion verursacht Laufzeitfehler
Hier ist die Methode, die in meinem linkedList.h
definiert:
linkedList linkedList::mergeSort(linkedList& one)
{
if (one.head->next == NULL)
{
return one;
}
else
{
linkedList right;
linkedList::split(one, right);
right = mergeSort(right);
one = mergeSort(one);
linkedList sort;
linkedList::merge(one, right, sort);
one = sort;
return one;
}
}
Wenn ich es zeigen, es richtig auf dem Bildschirm ausgibt, so weiß ich, es funktioniert, aber wenn die linkedList
ist größer als 4505 Knoten, es wird nicht gedruckt. Ich debuggte, um zu überprüfen, wo das Problem lag. Anscheinend ist es in meiner Anzeigefunktion, aber ich sehe nichts falsch damit.
Hier ist sie:
void display(node * p)
{
if (p == NULL)
{
}
else
{
cout << p->data << " ";
display(p->next);
}
}
Das Problem ist nicht auf cout << p->data << " ";
wies
Kann mir jemand in die richtige Richtung auf Sie, wie dieses Problem beheben? (Wenn es überhaupt repariert werden kann.) Jede Hilfe würde sehr geschätzt werden.
eine rekursive Funktion 4505 Es ist keine gute Idee – Pooya