Tommy wrote:
> Jeg tror ikke jeg behøver at skrive at jeg er ny til Java, men jeg ville
> gerne vide hvad en "dobbelthægtet liste" er?
En dobbelthægtet liste er en basal datastruktur bestående af en header og en
trailer, der er placeret i hver sin ende af listen, samt et antal
indekserede elementer. Alle elementerne har så en reference til det
forgående og efterfølgende element (der af navnet "dobbelthægtet liste").
Der er så en lang række metoder knyttet til listen, og de hedder nogenlunde
følgende:
first() //returnerer første element i listen efter headeren
last() //returnerer sidste element inden trailer
isFirst(p) //returnerer om elementet på position p er forrest
isLast(p) //returnerer om elementet på position p er bagest
before(p) //returnerer elementet ligefør elementet på position p
after(p) //returnerer elementet lige efter elementet på position p
replaceElement(p,e) //erstatter elementet på position p med element e
swapElements(p,q) //bytter om på elementerne på position p og q
insertFirst(e) //indsætter element e forrest i listen
insertLast(e) //indsætter element e bagest i listen
insertBefore(p,e) //indsætter element e foran position p; der opstår en
fejl, hvis p er den første
position
insertAfter(p,e) //indsætter element e efter position p; der opstår en
fejl, hvis p er den sidste
position
remove(p) //fjerner elementet på position p
Jeg mener ikke, at der ligger en implementation af en dobbelthægtet liste i
Java, men det er jo heller ikke nødvendigt, man koder den jo bare selv ;)
Dobbelthægtede lister er bare en af utrolig mange datastrukturer.
Hvis du er interesseret i datastrukturer og deres implementation i Java, kan
jeg varmt anbefale bogen "Algorithm Design - Foundations, Analysis, and
Internet Examples" skrevet af Michael T. Goodrich og Roberto Tamassia. Det
er en bog, der bliver anvendt i et kursus på første år på Århus Universitet
kaldet "Algoritmer og Datastrukturer".
Bogen forudsætter, at man har kendskab til eksponenter, summationer,
logaritmer og grænseværdier indenfor matematik samt, at man kender en lille
smule til Java eller C++ eller lignende i forvejen.
Hvis det mod forventning blev for rodet, så må du endelig henvende dig.
Venlig hilsen
Rasmus B. Grouleff
|