Presentation laddar. Vänta.

Presentation laddar. Vänta.

© Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2004 Datastrukturer och algoritmer Föreläsning 3.

Liknande presentationer


En presentation över ämnet: "© Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2004 Datastrukturer och algoritmer Föreläsning 3."— Presentationens avskrift:

1 © Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2004 Datastrukturer och algoritmer Föreläsning 3

2 Datastrukturer och algoritmer VT 2004 © Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2004 2 Innehåll  Fält och Tabell  Modell  Informell och formell specifikation  Konstruktioner  Tillämpningar

3 Datastrukturer och algoritmer VT 2004 © Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2004 3 Fält  Modell  Schackbräde  Organisation  n-dimensionellt fält organiserat som rätblock  Tillåts innehålla odefinierade elementvärden  Statisk typ

4 Datastrukturer och algoritmer VT 2004 © Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2004 4 Specifikation  Måste bestämma i förväg  Datatypen för elementvärdena  Antal dimensioner fältet  Datatyp för varje koordinataxel

5 Datastrukturer och algoritmer VT 2004 © Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2004 5 Gränsyta  Ingående operationer  Konstruktorer oCreate, Set-value  Inspektorer oInspect-value, Has-value, Low, High

6 Datastrukturer och algoritmer VT 2004 © Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2004 6 Gränsyta till Fält abstract datatype Array(val,index) Create (lo,hi:index) -> Array(val,index) Set-value(i:index,v:val,a:Array(val,index)) ->Array(val,index) Low (a:Array(val,index)) -> index High (a:Array(val,index)) -> index Has-value (i:index,a:Array(val,index))-> Bool Inspect-value (i:index,a:Array(val,index))-> val

7 Datastrukturer och algoritmer VT 2004 © Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2004 7 Formell specifikation  Uppsättning axiom  Beskriver relationer mellan typens olika operationer  Axiom kan användas för att göra formella härledningar i datatypen

8 Datastrukturer och algoritmer VT 2004 © Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2004 8 Konstruktion av Fält  Fysisk datatyp i många språk  N-dim Fält som 1-dim Fält  ”vecklar” ut fältet  Matriser lagras radvis

9 Datastrukturer och algoritmer VT 2004 © Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2004 9 Fält som Lista  Vektorer kan konstrueras som Lista  Inte så effektiv  Matris kan konstrueras som Lista av listor

10 Datastrukturer och algoritmer VT 2004 © Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2004 10 Gles matris  Gles matris – stort antal element är odefinierade eller har värdet noll  Implementeras som Vektor av tabell  Sparar utrymme  Sparar tid

11 Datastrukturer och algoritmer VT 2004 © Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2004 11 Tillämpningar Fält  Tekniska beräkningar  Geometriska transformationer oRotation, translation, skalning  Linjära ekvationssystem  Kantdetektering i bilder  Spelmatriser

12 Datastrukturer och algoritmer VT 2004 © Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2004 12 Tabell  Modell  Uppslagsbok  Organisation  Ändlig avbildning av argument på värden  Dynamisk datatyp

13 Datastrukturer och algoritmer VT 2004 © Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2004 13 Gränsyta till Tabell abstract datatype Table(arg,val) Empty() -> Table(arg,val) Insert(x:arg,y:val,t:Table(arg,val)) -> (Table(arg,val) Isempty (t:Table(arg,val)) -> Bool Lookup (x:arg, t:Table(arg,val)) -> (Bool,val) Remove (x:arg, t:Table(arg,val)) ->(Table(arg,val)

14 Datastrukturer och algoritmer VT 2004 © Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2004 14 Fält vs Tabell  Likheter  Index svarar mot elementvärde i ett fält  Argument svarar mot tabellvärde i en tabell  Skillnader  Tabell oHar inga krav på argumenttypen oÄr en dynamisk datatyp

15 Datastrukturer och algoritmer VT 2004 © Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2004 15 Konstruktion  Tabell kan konstrueras som Fält om:  argumenttypen är DLO  det går att hitta en ODEF-konstant  Argumenten är relativt väl samlade och inte utspridda

16 Datastrukturer och algoritmer VT 2004 © Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2004 16 Konstruktion  Lista av par  Riktad Lista  Hashtabell, Binärt sökträd

17 Datastrukturer och algoritmer VT 2004 © Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2004 17 Insättningar  Två huvudalternativ  Sätt in det nya paret först i listan  Kolla om det finns par med samma argument

18 Datastrukturer och algoritmer VT 2004 © Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2004 18 Tabell  Jämför Fält respektive Lista som par konstruktionen  Insättningskostnad  Avläsning  Borttagning  När väljer man vad?

19 Datastrukturer och algoritmer VT 2004 © Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2004 19 compareTo, equals Object key; Comparable cKey = Comparable (key); while ((currentNode != null)&& cKey.compareTo(currentNode.getkey())>0) {…} … if ((currentNode !=null) && key.equals(currentNode.getkey())) {…}

20 Datastrukturer och algoritmer VT 2004 © Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2004 20 compareTo, equals  När väljer man vad?  compareTo, equals jämför objekt  == jämför minnesadresser

21 Datastrukturer och algoritmer VT 2004 © Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2004 21 Tillämpningar  Ofta använd datatyp t ex  Representera samband mellan objekt  Benämna objekt  Associera egenskaper hos ett objekt med motsvarande värden  Kompilatorer  Fält som Tabell

22 Datastrukturer och algoritmer VT 2004 © Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2004 22 Tippel, Post, Relation  Associerar argument med värden  Tippel består av element (koordinater)  Post (record,struct) är som abstrakt datatyp sett samma sak som Tippel.  Relation är en egenskap definierad för en grupp av objekt


Ladda ner ppt "© Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2004 Datastrukturer och algoritmer Föreläsning 3."

Liknande presentationer


Google-annonser