Præsentation er lastning. Vent venligst

Præsentation er lastning. Vent venligst

Datastrukturer Simple-type structs

Lignende præsentationer


Præsentationer af emnet: "Datastrukturer Simple-type structs"— Præsentationens transcript:

1 Datastrukturer Simple-type structs
Selvrefererende (eng.: self-referential) objekter Sammenkædet liste (eng.: linked list) Stak (eng.: stack) Kø (eng.: queue) Binært søgetræ (eng.: binary search tree) ArrayList Steen Jensen, efterår 2013

2 Simple-type structs Hver simple type, fx bool, int, float (se appendix B i bogen) har en tilsvarende struct i namespace System, som definerer den simple type Disse structs hedder Boolean, Byte, Sbyte, Char, Decimal, Double, Single, Int16, UInt16, Int32, UInt32, Int64, UInt64 Simple typer er egentlig aliasser for deres tilsvarende structs Fx kan en variabel af type defineres enten af typen int eller Int32

3 Selvrefererende (eng.: self-referential) objekter
Et selvrefererende objekt kan referere til et andet objekt af samme type Selvrefererende objekter kan kædes sammen og på denne måde udgøre brugbare datastrukturer, såsom lister, køer, stakke og træer

4 Sammenkædet liste (eng.: linked list)
En sammenkædet liste (eng.: linked list) er en lineær samling af selvrefererende objekter (kaldt noder (eng.: nodes)) kædet sammen via reference links

5 Øvelse – linked list Gå ind på Læs/kig tekst og eksempler igennem – efter du har gjort det, skal du kunne redegøre for følgende i plenum: Hvilke 2 problemer i.f.t. arrays løser linked list? Hvad indeholder en linked list node? Hvordan angives, at der ikke er en node før/efter en given node? Hvad gør metoderne AddFirst og AddLast ? Hvad gør metoderne AddBefore og AddAfter ? Hvad gør metoderne Find og Find Last ?

6 Stak (eng.: stack) En stak (eng.: stack) kan betragtes som en udgave af en linked list med restriktionen, at nye noder kun anbringes i toppen af stakken, samt at noder frigøres/fjernes fra toppen En stak kaldes derfor for en LIFO datastruktur (last-in, first-out)

7 Øvelse 1 – stack Gå ind på http://www.dotnetperls.com/stack
Læs/kig tekst og eksempler igennem – efter du har gjort det, skal du kunne redegøre for følgende i plenum: Hvad gør metoderne Push og Pop ? Hvad er forskellen på Pop og Peek ? Hvad er formålet med egenskaben (eng.: property ) Count ? Hvad er formålet med metoden Clear ? Hvad gør metoden Contains ?

8 Øvelse 2 – stack Gå ind på Læs/kig eksemplerne igennem Copy/paste derefter kode ind i Visual Studio - NB! En vigtig ændring: System.Collections.Generic skal ændres til System.Collections Kør koden Lav koden om, så brugeren kan indtaste, hvor mange grøntsager, der skal blive tilbage i stakken. Fjern elementer fra stakken svarende til brugerens indtastning og udskriv til sidst den resterende stak

9 Kø (eng.: queue) En kø (eng.: queue) kan sammenlignes med en kø i supermarkedet Den første person i køen bliver betjent først Nye kunder stiller sig for enden af køen og venter på deres tur Noder i en kø indsættes for enden, og noder fjernes fra toppen En stak kaldes derfor for en FIFO datastruktur (first-in, first-out)

10 Øvelse 1 – kø (eng.: queue)
Gå ind på Læs/kig tekst og eksempler igennem – efter du har gjort det, skal du kunne redegøre for følgende i plenum: Hvilken metode bruges til at tilføje et element i køen ? Hvilken metode bruges til at fjerne et element i køen ?

11 Øvelse 2 – kø (eng.: queue)
Gå ind på https://www.video2brain.com/en/lessons/generic-queue-queue60t62 Se videoen igennem (varer ca. 5 min.) – efter du har set videoen, skal du kunne redegøre for følgende i plenum: Hvilken virkelighedstro problemstilling løses med en kø i videoen? Hvad sker efter det 1. element i køen er behandlet?

12 Binært søgetræ (eng.: binary search tree)
Et binært søgetræ (eng.: binary search tree) har følgende egenskaber: værdier i venstre subtræ er mindre end værdien i subtræets forældrenode (eng.: parent node) værdier i højre subtræ er større end værdien i subtræets forældrenode (eng.: parent node)

13 Øvelse 1 – binært søgetræ (eng.: binary search tree)
Gå ind på Læs/kig tekst og eksempler igennem ned til før kodeeksemplet ”Implementation of binary search tree (BST) in C#” – efter du har gjort det, skal du kunne redegøre for følgende i plenum: Hvilken 3 egenskaber (eng.: properties) har et træ ? Definer begreberne root, left child, right child, siblings, leaf nodes

14 Øvelse 2 – – binært søgetræ (eng.: binary search tree)
Gå ind på Se videoen igennem (varer ca. 14 min.) – efter du har set videoen, skal du kunne redegøre for følgende i plenum: Forklar hovedprincipperne for algoritmen for at tilføje en ny node i træet

15 Øvelse 3 – binært søgetræ (eng.: binary search tree)
Gå ind på (samme link som øv. 1) Copy/paste kode ind i Visual Studio Kør koden Udvid koden, så du lægger flere værdier ind i træet

16 ArrayList Klassen ArrayList giver mulighed for at arbejde med arrays af dynamisk størrelse

17 Øvelse – ArrayList Gå ind på Kig metoderne igennem (udvælg) – for hver metode: klik på link’et og kig på det viste kodeeksempel Kig som minimum metoder til at oprette (Add, Insert), og slette (Remove) igennem Prøv evt. også at copy/paste de udvalgte kodeeksempler ind i Visual Studio og kør dem. Find også meget gerne selv på ændringer til eksemplerne


Download ppt "Datastrukturer Simple-type structs"

Lignende præsentationer


Annoncer fra Google