Verkettete Liste: Unterschied zwischen den Versionen

Aus KGS-Wiki
(Seite angelegt, muss noch erweitert werden)
 
(more work to do)
Zeile 56: Zeile 56:
  h2 -[hidden]right-> t2
  h2 -[hidden]right-> t2
}
}
t1 --right--> List2
t1 --[bold]right--> List2
@enduml
@enduml
</uml>
</uml>
Zeile 83: Zeile 83:
  t3: null
  t3: null
}
}
t1 --right--> List2
t1 --[bold]right-> List2
t2 --right--> List3
t2 --[bold]right-> List3
@enduml
</uml>
 
== Operationen ==
 
=== Einfügen ===
 
Am Ende einer Liste kann man einfach ein neues Element anfügen, indem man ein neues Listen-Objekt mit einem Eintrag erzeugt:
 
<uml>
@startuml
hide empty description
skinparam linetype ortho
state List1 {
state "head" as h1
h1: 42
state "tail" as t1
h1 -[hidden]right-> t1
}
state List2 {
state "head" as h2
h2: 23
state "tail" as t2
h2 -[hidden]right-> t2
}
state List3 {
state "head" as h3
h3: 69
state "tail" as t3
h3 -[hidden]right-> t3
t3: null
}
state newElement #00B169 {
state "head" as h4 #00B169
h4: 1337
state "tail" as t4 #00B169
h4 -[hidden]right-> t4
t4: null
}
t1 --[bold]right-> List2
t2 --[bold]right-> List3
t3 --[hidden]right-> newElement
@enduml
</uml>
 
... und dann den <code>tail</code> des letzten Listenelements darauf zeigen lässt.
 
<uml>
@startuml
hide empty description
skinparam linetype ortho
state List1 {
state "head" as h1
h1: 42
state "tail" as t1
h1 -[hidden]right-> t1
}
state List2 {
state "head" as h2
h2: 23
state "tail" as t2
h2 -[hidden]right-> t2
}
state List3 {
state "head" as h3
h3: 69
state "tail" as t3 #00B169
h3 -[hidden]right-> t3
}
state newElement #00B169 {
state "head" as h4 #00B169
h4: 1337
state "tail" as t4 #00B169
h4 -[hidden]right-> t4
t4: null
}
t1 --[bold]right-> List2
t2 --[bold]right-> List3
t3 --[bold,#00B169]right-> newElement
@enduml
@enduml
</uml>
</uml>

Version vom 12. Oktober 2023, 07:38 Uhr

Eine verkettete Liste (engl. linked list) ist eine Datenstruktur, die beliebig viele Elemente in linearer Form speichern kann, d.h. zu jedem Element außer dem letzten existiert genau ein Nachfolger und zu jedem Element außer dem ersten existiert genau ein Vorgänger.

Verkettete Listen sind rekursiv definiert und bestehen aus zwei Teilen:

  1. einem Objekt, genannt head; das ist das erste Element der (Teil-)Liste
  2. einer verketteten Liste, genannt tail; das ist der gesamte Rest der Liste

Die einfachsten Fälle sind die leere Liste:

... und eine einelementige Liste:

An diese Liste können nun weitere Elemente angefügt werden, indem schrittweise neue Listen erzeugt werden:

Operationen

Einfügen

Am Ende einer Liste kann man einfach ein neues Element anfügen, indem man ein neues Listen-Objekt mit einem Eintrag erzeugt:

... und dann den tail des letzten Listenelements darauf zeigen lässt.

🕳
Lückenhaft

In diesem Artikel oder Abschnitt fehlen noch wichtige Informationen.

Hilf dem KGS-Wiki, indem du sie recherchierst und einfügst.