180 likes | 285 Vues
Datastrukturer og Collections. Rasmus D. Lehrmann DM67 2010. Indhold. Definition af datastruktur Statisk og dynamisk Stakken Køen LinkedList Binært træ Søgetræer Travesering Balanceret søgetræ Hashmap Collection typer Opsummering. Definition af datastruktur.
E N D
Datastrukturer og Collections Rasmus D. Lehrmann DM67 2010
Indhold • Definition af datastruktur • Statisk og dynamisk • Stakken • Køen • LinkedList • Binært træ • Søgetræer • Travesering • Balanceret søgetræ • Hashmap • Collection typer • Opsummering
Definition af datastruktur Datastruktur er en betegnelse for data, der er organiseret i elementer, som kan tilføjes eller fjernes fra strukturen. Nogle datastrukturer forudsætter et nøglefelt, som der kan søges efter. Som udgangspunkt er der tilknyttet nogle basis operationer til en datastruktur: • Tilføj • Fjern • Søge efter element • Checke om strukturen er tom
Statisk og dynamisk Det skelnes imellem statiske og dynamiske datastrukturer. • Statisk: Fast størrelse, kan vokse men øger køretid. Easy access til elementer (O(1)) • Dynamisk: Bruger den nødvendige plads mængde til dataen. Traveserer over elementerne (O(n)).
Stakken • Elementerne tilføjes og fjernes fra toppen. • LIFO(sidste in først out)
Køen • Elementerne tilføjes efter det sidst tilføjede element. • FIFO(først ind først ud)
LinkedList • Består af knuder • Dataelement + link • Dynamisk • Sekventiel tilgang
Binært træ • Bestående af en rod, et venstre og højre under træ • Forældre og børn referencer • Træet kan være: • Tomt • Balanceret • Skæve
Søgetræer • Hver knude har en ”midter” værdi • Knuden er mindre i venstre undertræ • Knude er støre i højre undertræ • Gennemløb med InOrder vil sorterer værdierne med mindste værdi først
Travesering af søgetræ • Travesering kan foregå på 3 måder: • preorder (rod, venstre, højre) • inorder (venstre, rod, højre) • postorder (venstre, højre, rod)
Balanceret søgetræ • En knude kan have flere værdier • En knude skal mindst være halvt fuld • Sletninger og tilføjelser vil altid foregå så træet er balanceret.
Hashmap • Værdier lagret i par(nøgle, værdi) • Nøglen kan bruges til søgning • Hvis nøglen findes, vil en værdi bliver returneret
Collection library System.Collections • Klasser: • Array • ArrayList • Hashtable • Stack • Queue
Opsummering Datastrukturer og Collections • Datastruktur: • Stakken • Køen • LinkedList • Binært træ • Travesering: • Gennemløb af data • Bruges til at gemme data, kan f.eks. Være en database