? Programmeringsspråket Java kommer med en rad ingående datastrukturer som länkade listor eller ordböcker . Men kan du någon gång vill skapa egna implementationer av datastrukturer för att passa dina egna specifika ändamål . Detta innebär också att genomföra egna basfunktioner för datastruktur , inklusive införande och funktioner radering . I fallet med en dubbelt länkad lista som innehåller strängvärden , detta är en fråga om att säkerställa att du hittar den nod som innehåller strängen och länka de punkter före och efter det raderade objektet för att upprätthålla strukturen av listan. Saker du behöver Review, Java Development Kit ( JDK ) katalog Textredigeraren eller Integrated Development Environment ( IDE )
Visa fler instruktioner
1
Lokalisera nod i länkad lista som du tar bort . I detta exempel är noderna i den dubbelt länkad lista som representeras av Datadelen " listitem ", som innehåller en sträng ( lagras som "värde" ) och två hänvisningar till andra ListItems : en "föregående " till den och ett " efter " den i listan . De " findItem "-funktionen går igenom listan tills att hitta den nod som innehåller strängen värdet , återvänder en hänvisning till den noden :
offentliga listitem findItem ( String word ) {
listitem ström = huvud , //av listan
samtidigt ( current.value = ord ! ) { current = current.next ; }
returström ;}
2
Skapa skelettet av en funktion för att ta bort noden. Denna funktion kommer att kalla " findItem " för att hitta den nod :
public void deleteItem ( String word ) {
listitem bort = findItem ( word ) ,
}
3
Ändra " deleteItem " -funktionen för att länka den föregående noden till följande nod . För att säkerställa att den dubbelt länkad lista förblir obruten , måste den tidigare nod kopplas till resten av listan efter den nod :
public void deleteItem (String ord) {
listitem avlägsnande = findItem ( ord ) , removing.previous.after = removing.after , //föregående nod nu länkar till följande nod }
4
Ändra " deleteItem " -funktionen för att länka följande nod till tidigare nod . För att slutföra länken och upprätthålla listan som en dubbelt länkad lista , behöver den borttagna noden är följande nod nu att länka tillbaka till den borttagna noden tidigare nod :
public void deleteItem ( String word ) {
listitem bort = findItem ( word ) ,
removing.previous.after = removing.after , removing.after.previous = removing.previous , //följande nod nu länkar till den föregående noden }
5
Radera nod :
public void deleteItem ( String word ) {
listitem bort = findItem ( word ) ,
removing.previous.after = removing.after ; removing.after.previous = removing.previous ;
bort = null ; } Addera