Presentation laddar. Vänta.

Presentation laddar. Vänta.

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

Liknande presentationer


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

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

2 Datastrukturer och algoritmer VT 2005 © Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2005 2 Innehåll  Stack, Kö  Tillämpningar  Rekursion  Dubbeländad kö

3 Datastrukturer och algoritmer VT 2005 © Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2005 3 Stack  Modell  Papperstrave  Specialisering av Lista  Begränsningar på operationer  Linjärt ordnad struktur  Före / efter relation

4 Datastrukturer och algoritmer VT 2005 © Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2005 4 Stack  LIFO – Last In First Out  Insättning, borttagning, avläsning i toppen av stacken  Metoder/operationer på kö?

5 Datastrukturer och algoritmer VT 2005 © Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2005 5 Informell specifikation till Stack  Empty - konstruerar tom stack  Push(v,s) – lägger (ett element med värdet) v överst på stacken  Top(s) – är värdet av det översta elementet på stacken (förutsatt att inte stacken är tom)  Pop(s) – avlägsnar det översta elementet från stacken (förutsatt att inte stacken är tom)  Isempty(s) – testar om stacken är tom

6 Datastrukturer och algoritmer VT 2005 © Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2005 6 Formell specifikation till Stack Ax 1: Isempty(Empty) Ax 2: ¬Isempty(Push(v,s)) Ax 3: Pop(Push(v,s)) = s Ax 4: Top(Push(v,s)) = v Ax 5: ¬Isempty(s) => Push(Top(s), Pop(s)) = s

7 Datastrukturer och algoritmer VT 2005 © Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2005 7 Gränsyta till Stack abstract datatype Stack(val) Empty () -> Stack(val) Push (v:val,s:Stack(val)) -> Stack(val) Top (s:Stack(val)) -> val Pop (s:Stack(val)) -> Stack(val) Isempty (s:Stack(val)) -> Bool

8 Datastrukturer och algoritmer VT 2005 © Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2005 8 Stack  Konstruktion med hjälp av ADT Lista  Uteslutningar och specialiseringar av operationer  Toppen av stacken obörjan eller slutet av listan  Absolut vs relativ komplexitet oLänkad och fält impl. av listan  Egen struktur

9 Datastrukturer och algoritmer VT 2005 © Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2005 9 Stack  Konstruktion mha länkad lista oRiktad lista med 1-celler o  (1) – tidskomplexitet

10 Datastrukturer och algoritmer VT 2005 © Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2005 10 Stack  Egen struktur mha av fält oBotten i slutet –Stacken läggs i slutet av fältet Push och Pop  (1) Inga stora dataomflyttningar oBotten i början oTvå stackar i samma fält

11 Datastrukturer och algoritmer VT 2005 © Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2005 11 Stack  Egen struktur mha av länkade celler oHärma riktad lista mha 1-celler oO(1) för push och pop

12 Datastrukturer och algoritmer VT 2005 © Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2005 12 Stack  Tillämpningar  Avbryter bearbetning som senare kanske återupptas  Återspårning (backtracking) oTill senaste gjorda valet  Hjälpstruktur för att traversera i grafer och träd

13 Datastrukturer och algoritmer VT 2005 © Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2005 13 Stack  Tillämpningar  Rekursion  Fakultet n! ofactorial(n) if (n<=1) then return 1; else return n*factorial(n-1);  Evaluering av uttryck

14 Datastrukturer och algoritmer VT 2005 © Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2005 14 Kö  Modell  Kö  Specialisering av Lista  Begränsningar på operationer  Linjärt ordnad struktur

15 Datastrukturer och algoritmer VT 2005 © Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2005 15 Kö  FIFO – First In First Out  Insättning i slutet av kön  Borttagning i början av kön  Metoder/operationer på kö?

16 Datastrukturer och algoritmer VT 2005 © Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2005 16 Gränsyta för Kö abstract datatype Queue(val) Empty () -> Queue (val) Enqueue (v:val,q: Queue (val)) -> Queue (val) Front (q: Queue (val)) -> val Dequeue (q: Queue (val)) -> Queue (val) Isempty (q: Queue (val)) -> Bool

17 Datastrukturer och algoritmer VT 2005 © Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2005 17 Kö  Konstruktion  Lista oFronten på kön = början av listan oListan som Fält –Komplexiteten oRiktad lista med 1-celler – Första köelementet länkar till det andra osv

18 Datastrukturer och algoritmer VT 2005 © Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2005 18 Kö  Konstruktion  Cirkulär struktur med 1-celler oLänken i slutet av kön pekar på fronten  Cirkulär vektor o + Inga omflyttningar o - Maximal storlek o - Outnyttjat utrymme oProblem skilja tom kö ifrån en full

19 Datastrukturer och algoritmer VT 2005 © Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2005 19 Kö  Tillämpningar  Buffert o Routrar oSkrivarkö  Bredden-först-traversering

20 Datastrukturer och algoritmer VT 2005 © Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2005 20 Dubbeländad kö  Tillåter insättning och borttagning i båda ändarna (Deque)  insertFirst(e): Sätter in e i början av deque In: Object  insertLast(e): Sätter in e i slutet av deque In: Object

21 Datastrukturer och algoritmer VT 2005 © Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2005 21 Dubbeländad kö  removeFirst(): Tar bort och returnerar 1:a elementet Ut: Object  removeLast(): Tar bort och returnerar sista elementet Ut: Object  first(), last(), size(), isEmpty()

22 Datastrukturer och algoritmer VT 2005 © Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2005 22 Dubbeländad kö  Konstruktion  Dubbellänkad Lista oInsättning och borttagning i ändarna komplexitet  (1) oHuvud och svans nod  Kan användas för att konstruera Stack och Kö

23 Datastrukturer och algoritmer VT 2005 © Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2005 23 Modell för datatypens byggande  Specifikatören – utformar specifikationen  Implementatören – implementerar specen  Användaren

24 Datastrukturer och algoritmer VT 2005 © Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2005 24 Felhantering  Specifikationen bestämmer implementationens spelrum  Implementatören ska uppfylla spec.  Användaren bör inte konstruera algoritmer som beror på ospecade förhållanden  Robusthet  Effektivitet


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

Liknande presentationer


Google-annonser