vendredi 24 avril 2015

Rotieren von Zahlentriples einer abstrakten Liste mit Pointern

Hallo!

Es geht um eine Uni Aufgabe, an der ich mir schon den Kopf zerbreche.
In einer abstrakten Liste mit Elementen, die einen key-Wert besitzen und einen next-Pointer auf das nächste Element, soll in jedem Triple der erste und der dritte Wert rotiert werden.

So soll aus 1;2;3;4;5;6;7; z.B. 3;2;1;6;5;4;7 werden

Meine Idee war, die Elemente jedes Triples zwischenzuspeichern, den Pointer des ersten Elementes dann auf das vierte zu setzen, den des zweiten auf das erste usw.

Allerdings schaffe ich es nicht, die zwischengespeicherten Elemente richtig in die List einzufügen
So würde zwar 3->2->1 und 6->5->4 zwischengespeichert werden, aber in einem Schleifendurchlauf kann ich keinen Pointer zwischen zB 1->6 setzen

Man könnte natürlich jedes erste Element an vierter stelle einfügen und anschließend jedes 1+3*n te Element löschen, aber vielleicht hat ja jemand eine Idee, wie man das ganze effizient in EINER Schleife lösen kann ;)???:L

Danke schonmal


Rotieren von Zahlentriples einer abstrakten Liste mit Pointern

0 commentaires:

Enregistrer un commentaire