Nicht sicher, warum die Knoten immer noch nicht tief kopieren? Der Kopf und die Größe sind tief und kopieren vollkommen in Ordnung.Singlelink List Copy Constructor
Scheint, dass sowohl NewNode-> Data als auch NewNode-> Next nicht tief kopiert werden. Nicht sicher, ob NewNode immer noch auf That -> Data and That -> Next zeigt.
Muss ich beim Erstellen des Knotens die tatsächlichen Werte übergeben?
Vielen Dank im Voraus für alle Antworten. Sehr geschätzt.
Die Liste übergibt (SLList & das).
Knoten ist die Struktur. Knoten verwendet keinen Schwanz. Nur eine nächste und Größe in meinem Fall.
Node* That = that.Head;
//If not null then deep copy.
if (That != nullptr)
{
Head = that.Head;
Size = that.Size;
//Interate through the list until the end nullptr
while (That != nullptr)
{
Node* NewNode = new Node;
NewNode->Data = That->Data;
NewNode->Next = That->Next;
That = That->Next;
}
}
//Set the head to null if list passed in is empty.
else if (That == nullptr)
{
Head = nullptr;
Size = 0;
}
Ist es nicht so, dass der Mauszeiger gelöscht wird, nachdem Sie den NewNode-Zeiger innerhalb Ihrer while-Schleife erstellt haben? – Foitn
Vielleicht möchten Sie meinen korrigierten Code sehen. – v78
jemand wird seriell jede Antwort ablehnen, nur weil sie die Frage nicht mögen? Ich mag auch den Code-Stil nicht, aber das ist kein Grund, die Frage nicht zu beantworten. – CashCow