18. oktober 2000 - 23:42Der er
4 kommentarer og 1 løsning
hægtet liste..
ja, det er sku et svært spgm, men here goes: Jeg skal have indsat et objekt i en hægtet liste, men efter timers forsøg, er det ikke lykkedes, konsekvent får jeg en nullpointerexception hver gang....hvad går der galt? udsnit af koden: else while (temp.neste!=null) temp = temp.neste; ny.neste = temp.neste; <-her går det galt temp.neste = ny; skriv gerne til mig på kevin@lystig.dk på forhånd tak...
Hos Computerworld it-jobbank er vi stolte af at fortsætte det gode partnerskab med folkene bag IT-DAY – efter vores mening Danmarks bedste karrieremesse for unge og erfarne it-kandidater.
Prøv med denne har indsaet-metode: (du skal naturligvis lige tilpasse div. navne til din egen kode :-))
public void Indsaet(String b) { if (foerste==null) { element e = new element(String b); e.neste=foerste; foerste=e; } else { temp = foerste; { element e = new element(String b); e.neste = temp.neste; temp.neste = e; } } }
(Det blev lidt uoverskueligt her på de sene timer, men prøv lige om det virker!!)
Ved hjælp af : while (temp.neste!=null) temp = temp.neste;
får du temp til at pege på det absolut sidste element i listen... Derfor er det naturligt at du får NullEx. når det er at du vil rekvirere temp.neste i : ny.neste = temp.neste;... temp.neste peger på NULL :-/
--- hvis du vil indsætte f.eks. element B i mellem to elementer, lad os kalde dem A og C ( ...-->A-->C-->... ), så kan det gøres på følgende måde.
(først finder du det element, som det nye element skal placeres lige efter Dette element kalder jeg a - Ud fra det findes c og b.neste sættes til at pege på dette : )
Dog vil jeg henstille til at lige i dit udsnit er \'temp\' et ret dårligt valg til variabel-navn. Derudover er jeg lidt forundret over din while-procedure, hvad skal der opnåes - skal det nye element altid sættes til sidst i listen ... I så tilfælde vil jeg tilråde at bruge en tail-head-struktur...
/Søren ... ( lidt forvirret over spørgsmålet - men håber du fik svaret du ledte efter ... ellers bare spørg igen :-)))
/-- Warning : Using module \"Coffee\" to atempt reboot of User...
Synes godt om
Slettet bruger
19. oktober 2000 - 13:30#3
ja det er også godt nok, men overblikket har jeg mistet. Her kommer hele koden som er en metode til at indsætte et objekt i en liste:
public void indsaet(Tegning ny) { Tegning temp = start; if (start==null) //indsæt første plads start=ny; else if (start.neste==null)//1 objekt i listen start.neste=ny; else while (temp.neste!=null) // hvis der er flere objekter { temp = temp.neste; ny.neste = temp.neste; //ny tegning indsættes temp.neste = ny; } } jeg kan simpelthen ikke finde hoved eller hale i de forskellige temp.neste og ny.neste og hvad de ellers hedder..
ja men prg stopper, når jeg forsøger at sætte tredie objekt ind i listen, så der er noget galt med metoden...det stopper bare og jeg kan ikke gennemskue hvad der er galt....jeg går ud fra at det er while løkken der er forkert...?
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.