Derselbe Algorithmus, den Bill the Lizard gesagt hat, aber grafisch :-)
Aus verknüpfter Liste entfernen http://www.jaffasoft.de/feature/ll/fig4 .gif
Der allgemeine Algorithmus lautet wie folgt:
Sie müssen den vorherigen und nächsten Knoten auf Null prüfen, um zu sehen, ob Sie den Kopf oder den Schwanz entfernen, aber das sind die einfachen Fälle.
Doubly Linked List Implementation Methoden entfernen (aus meiner zweiten Programmieraufgabe):
%Vor%Fragen Sie nach dem Namen einer Methode in der API? Diese Antwort würde einfach entfernt werden, vorausgesetzt, Sie fragen nach java.util.LinkedList, das tatsächlich eine doppelt verkettete Liste ist.
... oder fragen Sie, wie der Name des Algorithmus zum Entfernen eines Elements aus dieser Art von Datenstruktur aufgerufen wird? Nun, die Antwort wäre auch, ein Element zu entfernen. Nun zum eigentlichen Algorithmus ... es geht nur darum, den nächsten Zeiger im vorherigen Knoten und den letzten Zeiger im nächsten Knoten zu ändern. Wenn Sie jedoch Ihre Datenstruktur aus mehreren Threads verwenden, müssen Sie entweder die remove-Methode synchronisieren oder die Entfernungsschritte in einer Reihenfolge ausführen, die für Ihr Verwendungsmuster für die Datenstruktur sinnvoll ist.
Was ist mit dem aktuellen Zeigerzeiger? Sie müssen crnt zum nächsten Knoten bewegen. Ссылка
Tags und Links java data-structures linked-list