LinkedList Methode entfernen

8

Was ist eine Remove-Methode einer doppelt verknüpften Liste?

    
twodayslate 07.11.2008, 01:14
quelle

6 Antworten

20

Derselbe Algorithmus, den Bill the Lizard gesagt hat, aber grafisch :-)

Aus verknüpfter Liste entfernen http://www.jaffasoft.de/feature/ll/fig4 .gif

    
CMS 07.11.2008, 01:47
quelle
17

Der allgemeine Algorithmus lautet wie folgt:

  • Suchen Sie den zu entfernenden Knoten.
  • node.previous.next = Knoten.next
  • node.next.previous = Knoten.vorhergehend
  • node.previous = null
  • node.next = null
  • Entsorgen Sie den Knoten, wenn Sie sich in einer Nicht-GC-Umgebung befinden

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.

    
Bill the Lizard 07.11.2008 01:18
quelle
3
%Vor%     
albertein 07.11.2008 01:49
quelle
1

Doubly Linked List Implementation Methoden entfernen (aus meiner zweiten Programmieraufgabe):

%Vor%     
ashokgelal 10.11.2008 17:24
quelle
0

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.

    
kasperjj 07.11.2008 01:20
quelle
0

Was ist mit dem aktuellen Zeigerzeiger? Sie müssen crnt zum nächsten Knoten bewegen. Ссылка

    
twodayslate 09.11.2008 17:31
quelle