Ladda ner presentationen
Presentation laddar. Vänta.
Publicerades avNils Månsson
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
Liknande presentationer
© 2024 SlidePlayer.se Inc.
All rights reserved.