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) ;
}
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 ) {
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; }
Programmazione © www.354353.com