Video 8-6: Einfach verkettete Liste PythonTutor Visualisierung
CS 210 – Algorithms and Data Structures (Summer 2026) · unit page
· YouTube
2026-06-10, 4:54
The transcript was generated automatically by YouTube's speech recognition and is offered as is. It may contain errors, in particular in concerning technical terms, names and formulas.
0:01 Und ich habe hier noch mal unsere verkettete Liste vom letzten Mal reingepackt in etwas abgespeckt Version, aber im Wesentlichen ist es der Code von den Folien. Also, wir haben diese äh sie nennt sich extra Elemente Head and Tail, die immer da sind. Es gibt diese Note Klasse, die wesentlichen ein Element und einen Next Pointer hat und dann gibt's einen Insert und ein Delete. Ähm, ich habe dann hier so eine Mini Main Methode, die mal ein paar Elemente einfügt und die am Ende ausgibt, aber im Wesentlichen brauen sie das gar nicht. Äh, was sie nämlich dann tun können, ist sie Stück für Stück durch diesen Code durchlauf durchführen lassen und sie sehen auf der rechten Seite gemalt, wie dann ähm die das Objektgeflecht aussieht. Also, wenn wir hier den Aufruf an den Konstruktor haben, dann passiert erstmal jede Menge äh interner Kram. Wir legen so ein neue Instanz von Linked List an. Die hat noch keine Werte initialisiert.
1:00 Nach diesem Aufruf dann schon. Damit hat sie jetzt auch ein neues List Node Objekt hier dieses ähm für für Head. Das wird jetzt initialisiert und in den Headpointer eingefügt. Dann passiert das gleiche mit einem Element für Tail. Dann haben sie die beiden hier. Äh, dann kann man hier auch die Elemente rumbewegen, wenn die ein bisschen ungeschickt angeordnet sind.
1:28 All das war bisher nur die Initialisierung und erinnern sich ähm das das Tail Element zeigt dann immer zurück auf Head, auf den Vorgänger. So war die Konvention für unsere verketteten Listen. Ähm jetzt sind wir im Insert. Wir fügen ein neues Element in die Liste ein. Wo sind wir im Code? Zeigt an der Stelle gar nicht. Äh, wo ist der Pfeil da? Wir legen ein neues Element für das für ähm das neue einzufügende Element X an. Das ist hier schon in der Mache, aber noch nicht passiert. Hier ist diese neue Instanz auf der setzen. Okay, initialisieren, überspringen wir ich sehr kleinteilig. Dann setzen wir den Nextiger in dieser neuen Instanz auf was bisher ähm den den Nextiger in ähm unserem Vorgänger auf den neuen Knoten. Der Vorgänger, mit dem wir das aufgerufen haben, P war Head in der ursprünglichen Liste. Deswegen sollte das jetzt darauf gesetzt werden. Ups, die Animation ist ein bisschen sprunghaft.
2:57 Okay, mit dem mit dem reingezoomten funktioniert es nicht so ganz so smooth. Äh, dann haben wir nur diesen Fall, wo wir die Inviante herstellen müssen, dass das hier jetzt da drauf zeigt. Also im Prinzip vielleicht müsste ich ein bisschen kleiner machen.
3:18 Im Prinzip ist die Reihenfolge der Linearenliste ja jetzt so. Das hier ist Head. Das zeigt auf das nächste Element. Das zeigt auf Tail und Tail zeigt zurück auf den Vorgänger.
3:35 Vielleicht ist die andere Art, die Pointer zu malen weniger na gut. Also sehen, die Visualisierung ist nicht perfekt. Ist halt automatisch generiert, da kann man nur nach relativ einfachen Regeln gehen. Sie können sich da durchklicken, wie die Liste nach ein paar Einfügungen aussieht. Man kann Schritt für Schritt verfolgen, wie die einzelnen Schritte ablaufen. Das jetzt noch die dritte Einfügung, nachdem wir alle Schritte durch haben, haben wir jetzt eine Liste, wo es von Head zum nächsten Element, zum nächsten Element zum nächsten Element geht und von dem zu Tail und von Tail dann auch wieder zurück zum vorherigen. Das ist die Konvention, die wir gewählt hatten für einfach verkettete Listen. Ja, dann können sie sich auch angucken, wie die Lied funktioniert und so weiter. Ähm, ich wollte I das das Tool an die Hand geben, dass sie damit ein bisschen spielen können, auch wenn sie selbst Varianten programmieren oder irgendwas anderes programmieren, was mit viel Pointern rumbiegend zu tun hat, äh mag es vielleicht hilfreich sein, das zu visualisieren.
4:41 Es ist sehr kleinteilig, wie gesagt, weil es jeden einzelnen Schritt anzeigt, aber dadurch, dass sie gezeigt bekommen, wo sie gerade im Code stecken, kann man die uninteressanten Schritte überspringen. M.
← Video 8-5: Einfach verkettete ListenVideo 8-7: Doppelt verkettete Liste →