So löschen eine Zeichenfolge aus doppelt verknüpfte Liste in Java?

March 17

Die Programmiersprache Java kommt mit einer Reihe von enthalten Datenstrukturen wie verknüpfte Listen oder Wörterbücher. Sie können jedoch bei einigen Punkt Ihre eigenen Implementierungen von Datenstrukturen entsprechend Ihren eigenen spezifischen Zweck erstellen möchten. Dies bedeutet auch, eigene Grundfunktionen für die Datenstruktur, einschließlich der Einfügung und Löschung Funktionen zu implementieren. Im Falle eine doppelt verknüpfte Liste, String-Werte enthält, es geht um sicherzustellen, dass Sie den Knoten gefunden, welche die Zeichenfolge und Verknüpfung der Elemente vor und nach dem gelöschte Elemente, die Struktur der Liste beizubehalten.

Anweisungen

1 Suchen Sie den Knoten der verknüpften Liste, die Sie entfernen möchten. In diesem Beispiel werden die Knoten der doppelt verknüpften Liste durch das Datenelement "ListItem," enthält eine Zeichenfolge (gespeichert als "Wert") und zwei Verweise auf andere ListItems dargestellt: eine "zurück" und einen "nach" es in der Liste. Die Funktion "FindItem" durchläuft die Liste bis zu den Knoten mit der String-Wert, einen Verweis auf diesen Knoten zu finden:

öffentliche ListItem FindItem (String Wort) {}

ListItem-Strom = Kopf; Kopf der Liste

während (current.value! = Wort) {}aktuelle = current.next;}

zurück aktuelle;}

2 Erstellen Sie das Skelett einer Funktion den Knoten entfernt. Diese Funktion wird "FindItem" aufrufen, um den Knoten zu suchen:

public void DeleteItem (String Wort) {}

Entfernen von ListItem = findItem(word);

}

3 Ändern Sie die "DeleteItem"-Funktion, um den vorherigen Knoten mit den folgenden Knoten zu verknüpfen. Um sicherzustellen, dass die doppelt verknüpfte Liste ungebrochen bleibt, muss der vorherige Knoten an den Rest der Liste nach dem Knoten verknüpft werden:

public void DeleteItem (String Wort) {}

Entfernen von ListItem = findItem(word);Removing.Previous.After = removing.after; der vorherige Knoten verknüpft nun mit den folgenden Knoten}

4 Ändern Sie die "DeleteItem"-Funktion, um den folgenden Knoten mit den vorherigen Knoten zu verknüpfen. Vervollständigen den Link und die Liste als eine doppelt verknüpfte Liste, dem gelöschten Knoten folgende Knoten muss nun zurück zu der vorherigen des gelöschten Knotens zu verknüpfen:

public void DeleteItem (String Wort) {}

Entfernen von ListItem = findItem(word);

Removing.Previous.After = removing.after;Removing.After.Previous = removing.previous; folgende Knoten jetzt Links zu den vorherigen Knoten}

5 Löschen Sie den Knoten:

public void DeleteItem (String Wort) {}

Entfernen von ListItem = findItem(word);

Removing.Previous.After = removing.after;Removing.After.Previous = removing.previous;

Entfernen von = Null;}