Element von einer verketteten Listen in eine andere verschieben
-
Hohoho alle zusammen :xmas1: ,
versuche schon seit ner Weile, ein Element aus einer verketteten Liste, in eine andere verkettete Liste zu verschieben.
Leider bekomm ichs nicht hin!
Kann mir einer von euch vielleicht weiterhelfen?
Vielen Dank schon mal im Voraus
-
Was für eine verkettete Liste hast du denn? Wenn es eine std::list<> ist, schau dir mal splice() an - bei einer selbstgeschriebenen könnte es helfen, wenn du dir auf einem Blatt aufschreibst, welcher Zeiger wie verbogen werden muß.
-
Hallo CStoll,
benutze meine eigenen verketteten Listen. Habs auch schon mit Stift und Papier versucht. Wie es abzulaufen hat ist mir klar nur bekomm ichs nicht als Quellcode hin.
-
Dann mach's systematisch:
//zu verschiebendes Element merken: Element* mover = whatever; //Nachbarn in der Quellliste anpassen: mover->prev->next = mover->next; mover->next->prev = mover->prev; //verschobenes Element umhängen: mover->prev = target; mover->next = target->next; //Nachbarn in der Zielliste anpassen: target->next->prev = mover; target->next = mover;(die Sonderfälle, wenn einer der beteiligten Zeiger NULL ist, überlasse ich idr als Übung.
-
Danke! Hilft mir schon extrem weiter!
Bis zum nächsten mal
