Presentation is loading. Please wait.

Presentation is loading. Please wait.

Datastruktur & Algoritmik 41 Lister, Stakke & Køer Specifikation, Verifikation & Implementation.

Similar presentations


Presentation on theme: "Datastruktur & Algoritmik 41 Lister, Stakke & Køer Specifikation, Verifikation & Implementation."— Presentation transcript:

1 Datastruktur & Algoritmik 41 Lister, Stakke & Køer Specifikation, Verifikation & Implementation

2 Datastruktur & Algoritmik 42 Dynamiske Mængder samling af objekter ke ke ke ke ke ke ke Key Data Operationer/interface: Search(Key k):Elem Insert(Elem e) Delete(Key k) Min():Elem Max():Elem Successor(Elem e):Elem Predecessor(Elem e):Elem IsIn(Key k):Boolean Operationer/interface: Search(Key k):Elem Insert(Elem e) Delete(Key k) Min():Elem Max():Elem Successor(Elem e):Elem Predecessor(Elem e):Elem IsIn(Key k):Boolean Element Elementære Datastrukturer Lister (Stakke,Køer) Hash tabeller Binære Søgetræer Rød-Sorte Træer

3 Datastruktur & Algoritmik 43 Lister En specialiseret mængde C Operationer: First():Pos End():Pos Next(Pos p):Pos Prev(Pos p):Pos Retrieve(Pos p):Elem Insert(Elem e,Pos p) Delete(Pos p) Reverse() Length():Integer IsEmpty():Boolean Operationer: First():Pos End():Pos Next(Pos p):Pos Prev(Pos p):Pos Retrieve(Pos p):Elem Insert(Elem e,Pos p) Delete(Pos p) Reverse() Length():Integer IsEmpty():Boolean p1p2p3p4p5p6 Positioner ARLOS Elem L:

4 Datastruktur & Algoritmik 44 Lister Formel, induktiv definition Liste: sekvens af elementer over A: Definition Notation Hüttel, Ingólfsdóttir, Larsen

5 Datastruktur & Algoritmik 45 Implementation af lister

6 Datastruktur & Algoritmik 46 Dynamiske Mængder samling af objekter ke ke ke ke ke ke ke Key Data Operationer/interface: Search(Key k):Elem Insert(Elem e) Delete(Key k) Min():Elem Max():Elem Successor(Elem e):Elem Predecessor(Elem e):Elem IsIn(Key k):Boolean Operationer/interface: Search(Key k):Elem Insert(Elem e) Delete(Key k) Min():Elem Max():Elem Successor(Elem e):Elem Predecessor(Elem e):Elem IsIn(Key k):Boolean Element Elementære Datastrukturer Lister (Stakke,Køer) Hash tabeller Binære Søgetræer Rød-Sorte Træer

7 Datastruktur & Algoritmik 47 Liste Implementation I Arrays C A R L O S 1 2 3 4 5 6 7 8 9 10 Last Max L:

8 Datastruktur & Algoritmik 48 Liste Implementation II Kædet Liste key datakeynext prev I bogen kun key- felt CARLO head[L]

9 Datastruktur & Algoritmik 49 Kædet Liste Operationer CARLO head[L] Search(Key k) x:=head[L] while x<>Nil and key[x]<>k do x:=next[x] return x Insert(Elem x) /* x indsættes først i list*/ next[x]:=head[L] if head[L]<>Nil then prev[head[L]]:=x head[L]:=x prev[x]:=Nil Delete(Elem x) /* x slettes*/ if prev[x]<>Nil then next[prev[x]]:=next[x] else head[L]:=next[x] if next[x]<>Nil then prev[next[x]]:=prev[x]

10 Datastruktur & Algoritmik 410 Liste Implementation III Kædet Liste med vagt (sentinel) CARLO vagt[L] Delete(Elem x) /* x slettes*/ next[prev[x]]:=next[x] prev[next[x]]:=prev[x] x

11 Datastruktur & Algoritmik 411 Stak Last-In-First-Out C A R L O S 1 2 3 4 5 6 7 8 9 10 top max S:S: Operationer: IsEmpty():Bool Pop():Elem Push(Elem e) IsEmpty() if top=0 then return TRUE else return FALSE Push(Elem e) if top=max then return OVERFLOW else top:=top+1 S[top]:=e Pop if top=0 then return UNDERFLOW else top:=top-1 return S[top+1]

12 Datastruktur & Algoritmik 412 Kø First-In-First-Out R L O S 1 2 3 4 5 6 7 8 9 10 Q:Q: headtail Indsæt i halen og slet i hovedet. Enqueue(Elem e) Q[tail]:=e if tail=max then tail:=1 else tail:=tail+1 Dequeue() x:=Q[head] if head=max then head:=1 else head:=head+1 return x IsEmpty().... IsFull().....


Download ppt "Datastruktur & Algoritmik 41 Lister, Stakke & Køer Specifikation, Verifikation & Implementation."

Similar presentations


Ads by Google