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.

Beispiel

Eine Liste Fehler beim Parsen (MathML mit SVG- oder PNG-Rückgriff (empfohlen für moderne Browser und Barrierefreiheitswerkzeuge): Ungültige Antwort („Math extension cannot connect to Restbase.“) von Server „https://wikimedia.org/api/rest_v1/“:): {\displaystyle L} bestehe aus den Objekten Fehler beim Parsen (MathML mit SVG- oder PNG-Rückgriff (empfohlen für moderne Browser und Barrierefreiheitswerkzeuge): Ungültige Antwort („Math extension cannot connect to Restbase.“) von Server „https://wikimedia.org/api/rest_v1/“:): {\displaystyle l_1, l_2, \dotsc, l_i} . Eine Liste Fehler beim Parsen (MathML mit SVG- oder PNG-Rückgriff (empfohlen für moderne Browser und Barrierefreiheitswerkzeuge): Ungültige Antwort („Math extension cannot connect to Restbase.“) von Server „https://wikimedia.org/api/rest_v1/“:): {\displaystyle M} bestehe aus den Elementen Fehler beim Parsen (MathML mit SVG- oder PNG-Rückgriff (empfohlen für moderne Browser und Barrierefreiheitswerkzeuge): Ungültige Antwort („Math extension cannot connect to Restbase.“) von Server „https://wikimedia.org/api/rest_v1/“:): {\displaystyle m_1, m_2, \dotsc, m_j} .

Durch eine Konkatenation werden diese beiden Listen zu einer einzigen Liste Fehler beim Parsen (MathML mit SVG- oder PNG-Rückgriff (empfohlen für moderne Browser und Barrierefreiheitswerkzeuge): Ungültige Antwort („Math extension cannot connect to Restbase.“) von Server „https://wikimedia.org/api/rest_v1/“:): {\displaystyle L\circ M = l_1, l_2, \dotsc, l_i, m_1, m_2, \dotsc, m_j} zusammengefügt. Die Reihenfolge der Objekte innerhalb der Teillisten wurde dabei nicht verändert.

Graphische Darstellung

Datei:Objekt.PNG
Ein Objekt

Die Bilder zeigen, wie ein Objekt, die Liste L und die Liste M graphisch dargestellt werden.

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 beide Einzellisten hat. Sonst könnte es passieren, dass man die Konkatenation nicht richtig durchführt und keinen Zugriff mehr erhält, weil einzelne Zeiger schon überschrieben worden sind.

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.

Kommentare zum Pseudocode

Zeile 1: Vorgänger von Fehler beim Parsen (MathML mit SVG- oder PNG-Rückgriff (empfohlen für moderne Browser und Barrierefreiheitswerkzeuge): Ungültige Antwort („Math extension cannot connect to Restbase.“) von Server „https://wikimedia.org/api/rest_v1/“:): {\displaystyle m_1} 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 Fehler beim Parsen (MathML mit SVG- oder PNG-Rückgriff (empfohlen für moderne Browser und Barrierefreiheitswerkzeuge): Ungültige Antwort („Math extension cannot connect to Restbase.“) von Server „https://wikimedia.org/api/rest_v1/“:): {\displaystyle m_j}

Zeile 5: Dummy von M, und M selbst freigeben.

Datei:Liste LM.PNG
Liste nach der Konkatenation

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.