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