1 / 12

Datastruktur & Algoritmik 4

Datastruktur & Algoritmik 4. Lister, Stakke & Køer Specifikation, Verifikation & Implementation. k. k. k. k. k. k. k. e. e. e. e. e. e. e. Dynamiske Mængder samling af objekter. Element. Data. Operationer/interface: Search(Key k):Elem Insert(Elem e) Delete(Key k) Min():Elem

etan
Download Presentation

Datastruktur & Algoritmik 4

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. k k k k k k k e e e e e e e Dynamiske Mængdersamling af objekter Element 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 Key • Elementære Datastrukturer • Lister (Stakke,Køer) • Hash tabeller • Binære Søgetræer • Rød-Sorte Træer

  3. ListerEn specialiseret mængde L: Elem C A R L O S p1 p2 p3 p4 p5 p6 Positioner • 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

  4. Hüttel, Ingólfsdóttir, Larsen ListerFormel, induktiv definition Liste:sekvens af elementer over A: Definition Notation

  5. Implementationaf lister

  6. k k k k k k k e e e e e e e Dynamiske Mængdersamling af objekter Element 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 Key • Elementære Datastrukturer • Lister (Stakke,Køer) • Hash tabeller • Binære Søgetræer • Rød-Sorte Træer

  7. Liste Implementation IArrays L: C A R L O S 1 2 3 4 5 6 7 8 9 10 Max Last

  8. Liste Implementation IIKædet Liste I bogen kun key-felt prev key data next key head[L] C A R L O

  9. head[L] C A R L O Kædet ListeOperationer 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. Liste Implementation IIIKædet Liste med vagt (sentinel) vagt[L] x C A R L O Delete(Elem x) /* x slettes*/ next[prev[x]]:=next[x] prev[next[x]]:=prev[x]

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

  12. KøFirst-In-First-Out Q: R L O S 1 2 3 4 5 6 7 8 9 10 Indsæt i halen og slet i hovedet. head tail 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() .....

More Related