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

Slides:



Advertisements
Liknande presentationer
© Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 Datastrukturer och algoritmer Föreläsning
Advertisements

1 Listor En sekvens värden av samma typ Nr 5. 2 Listor Sekvens av värden, element Variabelt antal Alla med samma typ Bara första elementet direkt åtkomligt.
1 Logikprogrammering ons 11/9 David Hjelm. 2 Repetition Listor är sammansatta termer. De består av en ordnad mängd element. Elementen i en lista kan vara.
Algoritmer och data strukturer -Länkade listor
Nya typer Konstruerare, selektorer och predikat Rekursiva datatyper
Programmeringsteknik Föreläsning 4 Skolan för Datavetenskap och kommunikation.
© Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 Datastrukturer och algoritmer Föreläsning 4.
Datastrukturer och algoritmer Föreläsning 11. Datastrukturer och algoritmer VT08 Innehåll  Mängd  Lexikon  Heap  Kapitel , , 14.4.
Några standardalgoritmer
Föreläsning 2 Datastrukturer Abstrakta datastrukturer Stack
Föreläsning 6 Länkade lista Komplexitet Linjärsökning & binärsökning
DoA VT -07 © Anders Broberg, Lena Kallin Westin, P = ((C,F,3), (B,D,3), (C,G,4),(A,F,4), (A,R,4), (C,D,5), (E,G,6), (B,R,6), (A,E,6), (A,C,8)) A.
ABC EFG IJK Markera noden som besökt och lägg in den i kön. q = (A) Ta fram första elementet (A), q = ( ) Ta sedan fram grannmängden till A S = {B, F,
Föreläsning 10 Länkade lista Stack och Kö Att arbeta med listor
Datastrukturer och algoritmer
© Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 Datastrukturer och algoritmer Föreläsning 1.
© Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 Datastrukturer och algoritmer Föreläsning 1.
© Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 Datastrukturer och algoritmer Föreläsning 6 Asymtotisk analys.
© Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 Föreläsning 7 Träd.
Växjö 15 april -04Språk & logik: Reguljära uttryck1 DAB760: Språk och logik 15/4: Finita automater och 13-15reguljära uttryck Leif Grönqvist
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition, Kapitel 11: Implementation av filsystem.
© Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 Föreläsning l5 Abstrakta datatyper och algoritmdesign.
© Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2004 Datastrukturer och algoritmer Föreläsning 3.
PROCESSPROGRAMMERING
Föreläsning 4 Kö Implementerad med array Implementerad med länkad lista Djup kontra bredd Bredden först mha kö.
1 ITK:P1 Föreläsning 7 Algoritmer och datastrukturer DSV Marie Olsson.
Vektorer (klassen Vector) Sortering
Programmeringsteknik för Media1 & K1
Listor En lista är en föränderlig ordnad samling objekt.
Sid period2CD5250 OOP med C++ Mats Medin MDH/IDT Generiska algoritmer Kan användas på containertyper och arrays Använder iteratorer Implementerar.
Datastrukturer och algoritmer VT © Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 Bredden-först exempel ABCD EFGH IJKL MNOP = Obesökt.
Riktade listor i C och Java Lösning till gruppövning 1.
1 Föreläsning 6 Programmeringsteknik och Matlab 2D1312/2D1305 Metoder & parametrar Array API och klassen ArrayList.
© Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 Föreläsning 11 Trie, Sökning och Sökträd.
Datastrukturer och algoritmer
Föreläsning 5 Arrayer & ArrayList Hur man använder API:n
Datastrukturer och algoritmer
Prioritets Köer (Priority Queues ), Graph Data Structures & Problem Solving using Java --Kap 21,14.
William Sandqvist C-programmering ID120V Stack och Kö William Sandqvist
För utveckling av verksamhet, produkter och livskvalitet. Stack och Kö - Implementering - Tilllämpningar.
© Anders Broberg, Lena Kallin Westin, 2007 Datastrukturer och algoritmer Föreläsning 16.
Datastrukturer och algoritmer
© Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 Datastrukturer och algoritmer Föreläsning 14.
Stack och Kö -Implementering -Tilllämpningar -- Kapitel 16, 11.
F. Drewes, Inst. f. datavetenskap1 Föreläsning 2: Variabler och datatyper Variabler Bindning Typkontroll Några viktiga datatyper.
© Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 Föreläsning 12 Sökning och Sökträd.
© Anders Broberg, Lena Kallin Westin, 2007 Datastrukturer och algoritmer Föreläsning 13.
Köer -- Kapitel 16. Principen med en kö Köer är FIFO datastrukturer  First In – First Out  enqueue() Lägg till data i kön (först)  dequeue() Hämta.
Lennart Edblom & Frank Drewes, Inst. f. datavetenskap 1 Föreläsning 2: Variabler och datatyper Variabler Bindning Typkontroll Några viktiga datatyper.
ITM1 Kapitel 8 Datastrukturer Grundläggande datavetenskap, 4p Utgående från boken Computer Science av: J. Glenn Brookshear.
© Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 Föreläsning 9 Grafalgoritmer.
TILLÄMPAD DATALOGI (TILDA) Övningsgrupp 2 Marcus Hjelm
© Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 Datastrukturer och algoritmer Föreläsning 13 Sortering.
© Anders Broberg, Lena Kallin Westin, 2007 Datastrukturer och algoritmer Föreläsning 10.
© Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 Datastrukturer och algoritmer Gruppövning 0.
Datastrukturer och algoritmer
© Anders Broberg, Lena Kallin Westin, 2007 Datastrukturer och algoritmer Föreläsning 14.
© Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 Datastrukturer och algoritmer Föreläsning 14.
Anders Sjögren Data (i primärminnet) som en länkad lista datatypen för varje element i listan är en struktur, post ( struct )
© Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 Föreläsning 8 Relationer, prioritetsköer och grafer.
© Anders Broberg, Lena Kallin Westin, 2007 Datastrukturer och algoritmer Föreläsning 4.
Lennart Edblom, Frank Drewes, Inst. f. datavetenskap 1 Föreläsning 3: Abstrakta datatyper Algebror Abstrakta datatyper Inkapsling och informationsmaskering.
© Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 Föreläsning 8-9 Relationer, prioritetsköer, grafer och grafalgoritmer.
© Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 Datastrukturer och algoritmer Föreläsning 16.
Datastrukturer och algoritmer Föreläsning 3. Datastrukturer och algoritmer VT08 Innehåll  Fält och Tabell  Att läsa: Kapitel 5-6.
Algoritmer och datastrukturer Föreläsning 8 Tidskomplexitet (Weiss kap
Relationer, prioritetsköer, grafer och grafalgoritmer
© Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003
© Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003
Föreläsning 8: Exempel och problemlösning
Presentationens avskrift:

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

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

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

Datastrukturer och algoritmer VT 2004 © Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, Stack  LIFO – Last In First Out  Insättning, borttagning, avläsning i toppen av stacken

Datastrukturer och algoritmer VT 2004 © Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 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

Datastrukturer och algoritmer VT 2004 © Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 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

Datastrukturer och algoritmer VT 2004 © Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 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

Datastrukturer och algoritmer VT 2004 © Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, Stack  Konstruktion  Lista oToppen av stacken = början av listan oLista som fält –Komplexitet

Datastrukturer och algoritmer VT 2004 © Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, Stack  Konstruktion  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

Datastrukturer och algoritmer VT 2004 © Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, Stack  Konstruktion  Länkad Lista oRiktad lista med 1-celler –Uteslutningar och specialiseringar av operationer o  (1) – tidskomplexitet

Datastrukturer och algoritmer VT 2004 © Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, Stack  Tillämpningar  Avbryter bearbetning som senare kanske återupptas  Återspårning (backtracking) oTill senaste gjorda valet

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

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

Datastrukturer och algoritmer VT 2004 © Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, Kö  FIFO – First In First Out  Insättning i slutet av kön  Borttagning i början av kön

Datastrukturer och algoritmer VT 2004 © Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 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

Datastrukturer och algoritmer VT 2004 © Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 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

Datastrukturer och algoritmer VT 2004 © Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, Kö  Konstruktion  Cirkulär Lista 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

Datastrukturer och algoritmer VT 2004 © Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, Kö  Tillämpningar  Buffert  Skrivarkö  Bredden-först-traversering

Datastrukturer och algoritmer VT 2004 © Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 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

Datastrukturer och algoritmer VT 2004 © Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 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()

Datastrukturer och algoritmer VT 2004 © Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 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ö

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

Datastrukturer och algoritmer VT 2004 © Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 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