Ich versuche, zwei Knoten in einer verknüpften Liste zu tauschen wie folgt:Swapping verknüpfte Liste Elemente
void swapTwo(course*& first, course*& second)
{
auto temp = first;
first = second;
second = temp;
second->next = first->next; // error right here due to self-referencing
first->next = second;
}
ich einen Fehler bekommen, weil zweit-> nächste ist bereits selbstreferenzierend. Gibt es dafür eine elegante Lösung? Ich kann 2-Gang-Elemente erstellen und zuerst und zweitens neu konstruieren, aber das scheint so brachial. Vielen Dank!
Wie groß ist das Datenelement des Knotens? Sie können einfach 'std :: swap (first-> data, second-> data);' – user4581301
Damit dies funktioniert, müssen Sie auf vorherige Knoten zugreifen. Wenn Sie dies in eine doppelt kreisförmige verknüpfte Liste umwandeln, ersparen Sie sich eine Menge Ärger. – PythEch
Gentlemen (und Damen, wenn überhaupt), ich habe festgestellt, dass die Umwandlung in Vektor, Sortierung, und zurück konvertieren würde mir eine Menge Ärger ersparen. Herzlichen Dank für Ihre Meinung und Freundlichkeit. – CaTx