? Programmeringssproget Java kommer med en række af de inkluderede datastrukturer såsom hægtede lister eller ordbøger . Men du kan på et tidspunkt ønsker at oprette dine egne implementeringer af datastrukturer passer til dine egne specifikke formål. Dette betyder også at gennemføre dine egne grundlæggende funktioner for data struktur, herunder indsættelse og sletning funktioner. I tilfælde af en dobbelt linket liste indeholdende string værdier , er det et spørgsmål om at sikre, at du finder det knudepunkt indeholder strengen og forbinder de punkter før og efter den slettede element at bevare strukturen af listen . Ting du skal
Java Development Kit ( JDK )
Text Editor eller Integrated Development Environment (IDE)
Vis Flere Instruktioner
1
Find node af linkede liste du fjerner . I dette eksempel er de knudepunkter i dobbelt linkede liste repræsenteret af dataelementet " ListItem ", som indeholder en streng ( lagret som "værdi" ) og to referencer til andre ListItems : en " tidligere" til det og én "efter" den på listen . De " findItem " funktionen gennemgår listen , indtil finde node , der indeholder strengen værdi , vender tilbage en henvisning til , at node : Hej
offentlig ListItem findItem (String ord) {
ListItem strøm = hoved //leder af listen
while ( current.value = ord! ) { strøm = current.next ;}
returstrøm ;}
2
skabe skelettet af en funktion til at fjerne knuden . Denne funktion vil kalde " findItem " for at finde node : Hej
public void deleteItem (String ord) {
ListItem fjerne = findItem (word ),
} < br >
3
Rediger " deleteItem "-funktionen til at forbinde den forrige node til følgende node. For at sikre at den dobbelt linkede liste forbliver ubrudt , skal den tidligere node være knyttet til resten af listen efter den node : Hej
public void deleteItem (String ord) {
ListItem fjerne = findItem (word ), removing.previous.after = removing.after //den forrige node nu linker til den følgende node }
4
Rediger " deleteItem "-funktionen til at forbinde følgende node til forudgående knudepunkt . For at fuldende linket og vedligeholde listen som en dobbelt linket liste , den slettede node efter node skal nu til at linke tilbage til den slettede node tidligere node : Hej
public void deleteItem (String ord) {
< p > ListItem fjerne = findItem (word ),
removing.previous.after = removing.after , removing.after.previous = removing.previous //følgende node nu linker til den foregående node }
< br > 5
Slet node : Hej
public void deleteItem (String ord) {
ListItem fjerne = findItem (word ),
removing.previous.after = removing.after ; removing.after.previous = removing.previous ,
fjerne = null ;}