FB18 - Das Forum für Informatik

fb18.de / Bachelorstudieng / PM Praktische Informatik

Doppelt-verkettete Listen?

Doppelt-verkettete Listen? 2008-03-09 13:25
Anonymer User
Einfügen hinter der Position p:

new(n)
key[n] <- x
next[n] <- next[p]
prev[n] <- p
prev[next[n]] <- n //was genau pasiert hier und wie kan ich das Lesen?
next[prev[n]] <- n

Entfernen an Position q:
:
next[prev[q]] <- next[q] // und hier verstehe diese schachtelung nicht ganz
prev[next[q]] <- prev[q]
delete(q)

Ich weiss zwar wasda Prinzipiel pasiren soll doch wenn ich das schritt für schrit durch gehe verstehe ich es nicht ganz

RE: Doppelt-verkettete Listen? 2008-03-09 14:03
T
Einfügen hinter der Position p:
new(n) //einen neuen knoten erstellen
key[n] <- x // dem knoten einen wert zuweisen
next[n] <- next[p] // dem neuen knoten sagen, dass sein nachfolger der vorherige nachfolger von p ist
prev[n] <- p // dem neuen knoten sagen, dass sein vorgänger der knoten p ist
prev[next[n]] <- n // dem nachfolger vom neuen knoten sagen, dass der neue knoten sein vorgänger ist
next[prev[n]] <- n // dem vorgänger vom neuen knoten sagen, dass der neue knoten sein nachfolger ist

Entfernen an Position q:
next[prev[q]] <- next[q] //dem vorgänger vom zu löschenden knoten sagen, dass sein nachfolger der nachfolger des zu löschenden knotens ist (und nicht mehr derjenige der gelöscht wird)
prev[next[q]] <- prev[q] // dem nachfolger vom zu löschenden knoten sagen, dass sein vorgänger der vorgänger vom zu löschenden knoten ist (und nicht mehr derjenige der gelöscht wird)
delete(q)

zum beispiel:
a - b - c
b löschen:
next[prev] <- next wird zu next[a] <- c
prev[next] <- prev wird zu prev[c] <- a
was zur folge hat, dass der nachfolger von a c ist und der vorgänger von c a ist. genau wie es sein soll.

RE: Doppelt-verkettete Listen? 2008-03-09 14:33
Anonymer User
sehr gut Danke der sin war mir klar nur konnte ich diese schachtelng nicht genau nach vollziehen jetzt es klar thanx