? Java programmeringsspråk kommer med en rekke inkluderte datastrukturer som lenkede lister eller ordbøker . Imidlertid kan du på et tidspunkt ønsker å lage dine egne implementeringer av datastrukturer for å passe dine egne spesifikke formål. Dette betyr også implementere egne grunnleggende funksjoner for datastrukturen , inkludert innsetting og sletting funksjoner. I tilfelle av en dobbelt lenket liste som inneholder strengverdiene , er dette et spørsmål om å sikre at du finne noden som inneholder strengen og kobling av elementene før og etter den slettede elementet for å opprettholde strukturen av listen. Du trenger
Java Development Kit ( JDK )
Text Editor eller Integrated Development Environment ( IDE )
Vis flere instruksjoner
en
Finn node av lenket liste du skal fjerne . I dette eksemplet er nodene i dobbelt lenket liste representeres av data element " listitem ", som inneholder en streng ( lagret som "value ") og to referanser til andre ListItems : en " forrige" til det og en "etter" den i listen . De " findItem " funksjonen gjennomgår listen til å finne den noden som inneholder strengen verdi , retur en referanse til den noden : en
offentlig listitem findItem (String ord ) {
listitem current = hode //leder av listen
while ( current.value = ord!) { current = current.next ;}
returstrøm ;}
2
Lag skjelettet av en funksjon for å fjerne noden . Denne funksjonen vil kalle " findItem " for å finne node:
public void deleteItem (String ord ) {
listitem fjerne = findItem (word ) ;
}
3
Endre " deleteItem " funksjonen for å koble den forrige node til følgende node. For å sikre at dobbelt lenket liste er fortsatt ubrutt , må den forrige node være knyttet til resten av listen etter node:
public void deleteItem (String ord ) {
listitem fjerne = findItem (word ) ; removing.previous.after = removing.after ; //forrige node nå linker til følgende node }
4
Endre " deleteItem " funksjonen for å knytte følgende node til forrige node. For å fullføre linken og vedlikeholde listen som en dobbelt lenket liste , må slettes nodens følgende node nå å linke tilbake til den slettede node tidligere node : en
public void deleteItem (String ord ) {
< p > listitem fjerne = findItem (word ) ;
removing.previous.after = removing.after ; removing.after.previous = removing.previous ; //følgende node nå linker til forrige node }
5
Slett noden : en
public void deleteItem (String ord ) {
listitem fjerne = findItem (word ) ;
removing.previous.after = removing.after ; removing.after.previous = removing.previous ;
fjerne = null; }