Christian: Verkettete Listen in Javascript

Beitrag lesen

Danke für den Einblick in deinen Code. Was ich dort nicht ganz verstehe wofür last in List verwendet wird.

Leider weiß ich noch immer nicht die Lösung zu meinen Problem. Um das Problem verständlicher zu machen möchte ich erklären was mit diesem Code-Schnipsel umgesetzt werden soll.

Ich hatte die Idee das ich eine Tabelle erstelle die beim vertauschen von Zeilen und beim vertauschen von Spalten die innere Ordnung behält. Mein Ansatz sieht folgender Weise aus:

Die Tabelle wird so gespeichert

columnA --> columnB --> columnC
           ^           ^          ^
           |           |          |
row1 --> cellA1 --> cellB1 -->  cellC1
 |
 v
row2 --> ...
 |
 v
row3 --> ...

wenn ich nun zwei zeilen vertausche brauch ich nur die reihenfolge der rows zu ändern

columnA --> columnB --> columnC
           ^           ^          ^
           |           |          |
row2 --> cellA2 --> cellB2 -->  cellC2
 |
 v
row1 --> ...
 |
 v
row3 --> ...

wenn ich nun zwei spalten vertauschen ist dies schon komplizierter

columnB --> columnA --> columnC

row1 --> cellA1 --> cellB1 -->  cellC1
 |
 v
row2 --> ...
 |
 v
row3 --> ...

hier zeigt cellA1 auf columnA und cellB1 auf columnB usw. Aber die Reihenfolge der cells ist nun nicht mehr ident mit der der columns. Um dieses Problem zu lösen müssen die columns auf die cells zurückzeigen.

Die Ausgabe der Tabelle funktioniert dann so:
Man geht jede Reihe durch
  innerhalb der Reihe geht man jede Zelle ab
    jede einzelne Zelle verweist schon grundsätzlich auf die ihre
    zugehörige Spalte. Nun muss die Spalte nur mehr auf die Zelle
    zurückverweisen.
  jetzt geht man die Spalten der Reihenfolge nach ab und schaut auf
  welche Zelle sie zurückverweisen und gibt sie wieder aus.

=> Spalten und Zeilenumformungen kann man so einfach durchführen indem man Zeilen oder Spalten vertauscht ohne die ihnen zugehörigen Zellen zu vertauschen.