Die Programmiersprache Java kommt mit einer Reihe von enthalten Datenstrukturen wie verkettete Listen oder Wörterbücher. Sie können aber an einem gewissen Punkt wollen Ihre eigenen Implementierungen von Datenstrukturen erstellen, um Ihre eigenen Zwecken anzupassen . Dies bedeutet auch die Umsetzung Ihrer eigenen grundlegenden Funktionen für die Datenstruktur , einschließlich Einfügen und Löschen Funktionen . Im Fall einer doppelt verketteten Liste mit String-Werte , ist dies eine Frage der Gewährleistung, dass Sie den Knoten mit der Zeichenfolge zu finden und die Verknüpfung der Elemente vor und nach dem gelöschten Element, um die Struktur der Liste zu erhalten . Things You
Java Development Kit ( JDK) Kunst-Text -Editor oder Integrated Development Environment (IDE)
brauchen anzeigen Weitere Anweisungen
1
Suchen Sie den Knoten des verketteten Liste , die Sie entfernen . In diesem Beispiel sind die Knoten der doppelt verknüpften Liste nach dem Datenelement " ListItem ", die eine Zeichenfolge enthalten (gespeichert als "value" ) und zwei Referenzen auf andere ListItems dargestellt : eine " Zurück ", um es und ein "nach" in der Liste . Die " findItem "-Funktion durchläuft die Liste, bis das Finden der Knoten, der die Zeichenfolge enthält , die einen Verweis auf diesen Knoten :
öffentlichen ListItem findItem (String word) {
ListItem current = Kopf //Kopf der Liste
while ( current.value = Wort ! ) {current = current.next ;}
Rückstrom ;}
2
erstellen Sie das Skelett einer Funktion , um den Knoten zu entfernen. Diese Funktion wird als " findItem " , um den Knoten zu finden:
public void deleteItem (String word) {
ListItem Entfernen = findItem (Wort) ;
}
3
Ändern Sie den " deleteItem "-Funktion , um den vorherigen Knoten auf den folgenden Knoten verbinden. Um sicherzustellen, dass die doppelt verkettete Liste ungebrochen , muss der vorherige Knoten an den Rest der Liste nach dem Knoten verknüpft werden :
public void deleteItem (String word) {
ListItem Entfernen = findItem (Wort) ; removing.previous.after = removing.after ; //der vorherigen Knoten nun auf die folgende Knoten verbindet }
4
Ändern Sie den " deleteItem "-Funktion , um den folgenden Knoten , um den Link vorherigen Knoten . Um den Link zu vervollständigen und pflegen die Liste als doppelt verkettete Liste der gelöschten Knotens folgenden Knoten muss jetzt zurück zu verknüpfen , um die gelöschten Knotens vorherigen Knoten :
public void deleteItem (String word) {
< p > Entfernen ListItem = findItem (Wort) ;
removing.previous.after = removing.after ; removing.after.previous = removing.previous //folgenden Knoten nun zum vorhergehenden Knoten }
Links
5
löschen der Knoten :
public void deleteItem (String word) {
ListItem Entfernen = findItem (Wort) ;
removing.previous.after = removing.after ; removing.after.previous = removing.previous ;
Entfernen = null;}