Vitajte na [www.pocitac.win] Pripojiť k domovskej stránke Obľúbené stránky
Vyhľadajte uzol spájať zoznam , ktorý odstráni . V tomto príklade sú uzly dvakrát prepojeného zoznamu sú zastúpené dátové položky " ListItem " , ktorý obsahuje reťazec (uložený ako " hodnota " ) , a dva odkazy na ďalšie ListItems : jeden " predchádzajúci" a na neho jeden " po " je v zozname . Funkcia " findit " prechádza v zozname, kým nájsť uzol , ktorý obsahuje hodnotu reťazca , vracia referenciu na tento uzol :
verejné ListItem findit ( String slovo ) {
ListItem prúd = hlava , //vedúci zoznamu
while ( current.value = slovo ! ) { prúd = current.next ; }
návrat prúdu ; }
2
vytvorte kostru funkcie pre odstránenie uzla . Táto funkcia bude volať " findit " vyhľadajte uzol :
public void deleteItem ( String slovo ) {
ListItem odstraňovanie = findit ( word ) ;
}
3
Upravte funkciu " deleteItem " spojiť predchádzajúci uzol na nasledujúce uzla . Aby bolo zaistené , že dvojnásobne spájať zoznam zostáva neporušená , musí byť predchádzajúce uzol spojený so zvyškom zoznamu nasledujúce uzol :
public void deleteItem ( String slovo ) {
ListItem odstraňovanie = findit ( slovo ) , removing.previous.after = removing.after , //predchádzajúci uzol sa odkazuje na nasledujúce uzla }
4
Upravte funkciu " deleteItem " prepojiť nasledujúce uzol predchádzajúci uzol . Ak chcete dokončiť prepojenie a udržiavať zoznam ako dvojnásobne spájať zoznam , nasledujúce uzol vymasteného uzla sa teraz musí spojiť späť do vymasteného uzla predchádzajúceho uzla :
public void deleteItem ( String slovo ) {
ListItem odstraňovanie = findit ( word ) ;
removing.previous.after = removing.after ; removing.after.previous = removing.previous ; //nasledujúce uzol teraz odkazuje na predchádzajúci uzol }
5
Odstrániť uzol :
public void deleteItem ( String slovo ) {
ListItem odstraňovanie = findit ( word ) ;
removing.previous.after = removing.after ; removing.after.previous = removing.previous ;
odstraňovanie = null ; }