Kursinhalt
Überblick Über Algorithmen und Datenstrukturen
Überblick Über Algorithmen und Datenstrukturen
Doppelt Verkettete Liste
Die verkettete Liste ist eine vielseitige Datenstruktur, frei von den "Löchern", die in Arrays vorhanden sind.
Die Manipulation des ersten Elements ist effizient, aber für bestimmte abstrakte Datentypen wie Warteschlangen sind effiziente Manipulation des letzten Elements und bidirektionale Durchläufe erforderlich. Standard-verkettete Listen haben Schwierigkeiten beim Zugriff auf das letzte Element, was eine Zeitkomplexität von O(N)
erfordert.
Doppelt verkettete Listen lösen diese Einschränkung und bieten Lösungen für verschiedene andere Herausforderungen.
from lolviz import * from IPython.display import display_png class Node: def __init__(self, data): self.value = data self.next = None self.previous = None # Let's create some nodes node1 = Node(1) node2 = Node(2) node3 = Node(3) # Then let's couple them into a linked list node1.next = node2 node2.next = node3 # And don't forget to assign the reference to a previous node node2.previous = node1 node3.previous = node2 display_png(objviz(node1))
Die Knoten der doppelt verketteten Liste enthalten die Referenzen auf die nächsten und vorherigen Elemente. Daher können wir auf das erste und das letzte Element in O(1)
konstanter Laufzeit zugreifen. Die Zeitkomplexität aller anderen Operationen für die doppelt verkettete Liste ist die gleiche wie für die einfach verkettete Liste.
Danke für Ihr Feedback!