Verkettete Listen Flashcards
Sinn von verketteten Listen
beliebige Speichergröße
welche Probleme lösen verkettete Listen (u.a.)
ungenutzter Speicher, fest definierte Feldlänge
zwei Arten von verketteten Listen
einfach verkettete und zweifach verkettete Listen
Bestandteile einfach verkettete Liste
Listenknoten (mit Nachfolgerlistenknoten)
head
Bestandteile Listenknoten (einfach verkettete Liste)
next (Verweis auf nächstes Element)
object (Referenz auf Objekt, das gespeichert werden soll)
Was kann “next” enthalten
Verweis auf nächstes Element
null (wenn kein nächstes Element)
was kann “prev” enthalten
Verweis auf vorheriges Element
null (wenn kein vorheriges Element)
Wie wird ein Listenknoten vorne an eine einfach verkette Liste angehangen
head -> neuer Listenknoten (Referenz auf ehemalig ersten Listenknoten wird ersetzt)
next(neuen Listenknoten) -> ehemalig ersten Listenknoten
Wie wird ein Listenknoten vorne an eine zweifach verkettete Liste angehangen
head -> neuer Listenknoten (Referenz auf ehemalig ersten Listenknoten wird ersetzt)
next(neuer Listenknoten) -> ehemalig erster Listenknoten
prev (neuen Listenknoten) -> null
prev (ehemalig erster Listenknoten) -> neuer Listenknoten
Wie wird ein Listenknoten hinten an eine einfach verkettete Liste angehangen
next(neuen Listenknoten) -> null
next(ehemalig letzter Listenknoten) -> neuer Listenknoten
Wie wird ein Listenknoten hinten an eine zweifach verkettete Liste angehangen
tail -> neuer Listenknoten (Referenz auf ehemalig letzten Listenknoten wird ersetzt)
next(neuen Listenknoten) -> null
next(ehemalig letzten Listenknoten) -> neuer Listenknoten
prev(neuen Listenknoten) -> ehemalig letzter Listenknoten
next(ehemalig letzter Listenknoten) -> neuer Listenknoten
Wie wird ein Listenknoten an einer bestimmten Stelle eingefügt (einfach verkettete Liste)
next(vorausgehender Listenknoten) -> neuer Listenknoten (ersetz die vorherige Referenz auf den Listenknoten, der nun dem neuen Listenknoten folgt)
next(neuen Listenknoten) -> nachfolgender Listenknoten
Wie wird ein Listenknoten an einer bestimmten Stelle eingefügt (zweifach verkettete Liste)
next(vorausgehender Listenknoten) -> neuen Listenknoten (ersetz die vorherige Referenz auf den Listenknoten, der nun dem neuen Listenknoten folgt)
next(neuer Listenknoten) -> nachfolgender Listenknoten
prev(neuer Listenknoten) -> vorausgehender Listenknoten
prev(dem neuen Listenknoten folgenden Listenknoten) -> neuer Listenknoten (ersetz die vorherige Referenz auf den Listenknoten, der nun dem neuen Listenknoten vorausgeht)
Wie wird der erste Listenknoten einer einfach verketteten Liste gelöscht
head -> “next” des zu löschenden Listenknoten (zeigt auf ehemalig zweiten Listenknoten)
Wie wird der erste Listenknoten einer zweifach verketteten Liste gelöscht
head -> “next” des zu löschenden Listenknoten (zeigt auf ehemalig zweiten Listenknoten)
prev(“next” des zu löschenden Listenknoten) -> null (ehemalig zweiter Listenknoten hat keinen Vorgänger mehr)