Konkatenation (Listen)
aus Wikipedia, der freien Enzyklopädie
Die Konkatenation ist eine Operation auf listenartigen Datenstrukturen. Eine Liste besteht aus einer Folge von Objekten in einer definierten Reihenfolge. Eine Konkatenation besteht darin, zwei Listen zu einer einzigen Liste zusammenzufügen, ohne die Reihenfolge der Elemente zu verändern. Der erste Teil der neu zusammengefügten Liste wird von der ersten Argumentliste gebildet, der zweite Teil von der zweiten Argumentliste.
Inhaltsverzeichnis |
[Bearbeiten] Beispiel
Eine Liste L bestehe aus den Objekten l1l2...li mit einem Dummy. Eine Liste M bestehte aus den Elementen m1m2...mj und ebenfalls einem Dummy. Die Dummys sind leere Objekte, welche am Anfang der Listen stehen, und auf welche Zeiger zeigen. Im Beispiel, ist für die Liste L der Zeiger L gewählt worden und für die Liste M der Zeiger M. Durch eine Konkatenation werden diese beiden Listen zu einer einzigen Liste l1l2...lim1m2...mj zusammengefügt. Die Reihenfolge der Objekte wurde dabei nicht verändert.
[Bearbeiten] Graphische Darstellung
Die Bilder zeigen wie ein Objekt, die Liste L und die Liste M graphisch dargestellt werden.
[Bearbeiten] Hinweis
Es ist wichtig bei der Konkatenation zu beachten, dass man die Zeiger sinnvoll verbiegt (s. Pseudocode) damit man bis zum Schluss noch Zugriff auf die beiden Einzellisten hat. Sonst könnte es passieren, das man die Konkatenation nicht richtig durchführt und keinen Zugriff mehr erhält, weil einzelne Zeiger schon überschrieben worden sind.
[Bearbeiten] Pseudocode
Zeile 1. M → next → prev = L → prev Zeile 2. M → prev → next = L Zeile 3. L → prev → next = M → next Zeile 4. L → prev = M → prev
Zur Sicherheit den Dummy der Liste M freigeben. Zeile 5. M → next = NIL Zeile 6. M → prev = NIL Zeile 7. M = NIL
Wobei man NIL (Not in List) mit der Zuweisung von NULL vergleichen kann.
[Bearbeiten] Kommentare zum Pseudocode
Zeile 1: Vorgänger von m1 ist das letzte Objekt aus der Liste L.
Zeile 2: Nachfolger vom letzten Objekt der Liste M ist der Dummy von Liste L.
Zeile 3: Nachfolger vom letzten Objekt der Liste L ist das erste von Liste M.
Zeile 4: Vorgänger des Dummys der Gesamtliste ist mj
Zeile 5: Dummy von M, und M selbst freigeben.
[Bearbeiten] Zeichenketten als Spezialfall
Ein häufiger Spezialfall ist die Konkatenation (Verkettung) von Zeichenketten. In diesem Fall bestehen die Listen aus einzelnen Zeichen und werden zu einer einzigen Zeichenkette zusammengefügt. Die beiden Zeichenketten „Wiki” und „pedia” lassen sich etwa mittels Konkatenation zur Zeichenkette „Wikipedia” zusammenfügen.