Il linguaggio di programmazione Java è dotato di una serie di strutture di dati inclusi come elenchi o dizionari collegate . Tuttavia , è possibile che a un certo punto vogliono creare le proprie implementazioni di strutture di dati in base alle proprie specifiche finalità . Questo significa anche attuare le proprie funzioni di base per la struttura dei dati , tra cui l'inserimento e funzioni di cancellazione . Nel caso di una lista doppia contenente valori stringa , questa è una questione di assicurare che si trova il nodo contenente la stringa e collegando gli elementi prima e dopo l'elemento eliminato per mantenere la struttura della lista . Cose che ti serviranno
Java Development Kit ( JDK ) per Editor di testo o ambiente di sviluppo integrato ( IDE ) economici Mostra più istruzioni
1
individuare il nodo della lista collegata si sta rimuovendo . In questo esempio , i nodi della lista doppiamente collegata sono rappresentati dai dati voce " ListItem ", che contiene una stringa ( memorizzati come " valore ") e due riferimenti ad altre ListItems : un " precedente " ad esso e un "dopo" nella lista . Le " FindItem " attraversa funzione l'elenco fino a trovare il nodo che contiene il valore stringa , restituendo un riferimento a tale nodo :
pubblico ListItem FindItem ( String parola ) {
ListItem corrente = testa corrente
ritorno ; ; //capo della lista
mentre ( current.value = parola!) {current = current.next } ; }
2
creare lo scheletro di una funzione per rimuovere il nodo . Questa funzione si chiama " FindItem " per individuare il nodo :
public void DeleteItem ( String parola ) {
ListItem rimozione = FindItem (parola) ;
} < br >
3
modificare la funzione " DeleteItem " per collegare il nodo precedente al nodo seguente . Per garantire che la lista doppiamente collegata rimane intatto , il nodo precedente deve essere collegato al resto della lista dopo il nodo :
public void DeleteItem ( String parola ) {
ListItem rimozione = FindItem (parola) ; removing.previous.after = removing.after ; //il nodo precedente, ora i collegamenti alle seguenti nodo }
4
modificare la funzione " DeleteItem " per collegare il seguente nodo alla nodo precedente . Per completare il collegamento e mantenere la lista come una doppia lista collegata , seguente nodo del nodo eliminato ha ora bisogno di un collegamento al nodo precedente del nodo eliminato :
public void DeleteItem ( String parola ) {
< p > ListItem rimozione = FindItem (parola) ;
removing.previous.after = removing.after ; removing.after.previous = removing.previous ; //seguente nodo ora collega al nodo precedente }
5
eliminare il nodo :
public void DeleteItem ( String parola ) {
ListItem rimozione = FindItem (parola) ;
removing.previous.after = removing.after ; removing.after.previous = removing.previous ;
rimozione = null; }