Stack och Kö -Implementering -Tilllämpningar -- Kapitel 16, 11.

Slides:



Advertisements
Liknande presentationer
Interface.  Interface är en datatyp och har alltså egen syntax och en hel del egna regler för vad arv från interface innebär.  Interface är renodlad.
Advertisements

© Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2004 Datastrukturer och algoritmer Föreläsning 4.
Algoritmer och data strukturer -Länkade listor
Fortsättningskurs i Programmering lektion 6
OOP Objekt-orienterad programmering
© 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.
Binära Sökträd, kapitel 19
Föreläsning 2 Datastrukturer Abstrakta datastrukturer Stack
Föreläsning 6 Länkade lista Komplexitet Linjärsökning & binärsökning
C-programmering ID120V William Sandqvist Länkad lista
Arv.
Föreläsning 10 Länkade lista Stack och Kö Att arbeta med listor
Hashing / Hash tabeller -- Kapitel 20. Hash? Varför en annan datastruktur? Konstant tid för både insert- och find- operationer.
Träd och tillämpningar Data Structures & Problem Solving using Java -- Kapitel 19, 12.
i olika programmeringsspråk
Sid period2CD5250 OOP med C++ Mats Medin MDH/IDT Objektbaserad programmering –Grundläggande om klasser och objekt – (Arv får vänta)  Iden med klasser.
© Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2004 Datastrukturer och algoritmer Föreläsning 3.
Föreläsning 4, Kapitel 4 Gruppera objekt Kursbok: “Objects First with Java - A Practical Introduction using BlueJ”, David J. Barnes & Michael Kölling.
Programmering i C# 3. Klasser.
PROCESSPROGRAMMERING
Föreläsning 4 Kö Implementerad med array Implementerad med länkad lista Djup kontra bredd Bredden först mha kö.
Datasamlingar och generiska enheter
Föreläsning 2 Kort Översikt Över Javaspråket. Källkodsformat Unicode används åäöμψζ tillåtna Inte alla miljöer klarar av det Källkod Bytekod Java VM för.
4. Arv och dynamisk bindning
Vektorer (klassen Vector) Sortering
Mer om arv - Polymorfism Kursbok: “Objects First with Java - A Practical Introduction using BlueJ”, David J. Barnes & Michael Kölling Fredric Ragnar
Sid period2CD5250 OOP med C++ Mats Medin MDH/IDT Generiska algoritmer Kan användas på containertyper och arrays Använder iteratorer Implementerar.
OOP F6:1 Stefan Möller OOP Objekt-orienterad programmering Föreläsning 6 Mer om klasser och objekt Hantera många objekt ArrayList toString() – metoden.
Rör vi oss? Det beror på vad vi jämför oss med.
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.
Datastrukturer och algoritmer
William Sandqvist C-programmering ID120V Stack och Kö William Sandqvist
För utveckling av verksamhet, produkter och livskvalitet. Stack och Kö - Implementering - Tilllämpningar.
Datastrukturer och algoritmer
OOP F14:1 Stefan Möller OOP Objekt-orienterad programmering Föreläsning 14 Repetition Tips inför inlämningsuppgift 2.
1 ITK:P2 F6 Sortering av generiska containerklasser DSV Peter Mozelius.
För utveckling av verksamhet, produkter och livskvalitet. Algoritmer och datastructurer - Sökträd, naiva och balancerade lösningar -HashTable -- Kapitel.
Träd -Allmänt om träd -Binärt träd -Filkomprimering med Huffman träd
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.
7. Delegerare och notifierare
För utveckling av verksamhet, produkter och livskvalitet. Algoritmer och datastrukturer - En annan sort tänkande, rekursiva metoder -Datastrukturen träd,
ITM1 Kapitel 8 Datastrukturer Grundläggande datavetenskap, 4p Utgående från boken Computer Science av: J. Glenn Brookshear.
TILLÄMPAD DATALOGI (TILDA) Övningsgrupp 2 Marcus Hjelm
TILLÄMPAD DATALOGI (TILDA) Övning 1 Marcus Hjelm
OOP F5:1 Stefan Möller OOP Objekt-orienterad programmering Föreläsning 5 Klasser och objekt Skapa objekt - new Referenser Konstruktorer Inkapsling.
Övning 3. Repetition Metoder class RepetitionMetoder { public static void main(String [] args) double längd = 2.0; double bredd = 1.0; double area =
Föreläsning 5 Objekt Klasser Konstruktorer Metoder Minnesbilder av objekt.
För utveckling av verksamhet, produkter och livskvalitet. Algoritmer och Datastrukturer -- Kap 21,14 Prioritets Köer (Priority Queues ), Graph.
Föreläsning 7 Repetition Sammansatta datatyper –vektor (hakvektor, array) –matris.
Anders Sjögren Data (i primärminnet) som en länkad lista datatypen för varje element i listan är en struktur, post ( struct )
1 Föreläsning 4 Metoder & parametrar Array API och klassen ArrayList.
© Anders Broberg, Lena Kallin Westin, 2007 Datastrukturer och algoritmer Föreläsning 4.
För utveckling av verksamhet, produkter och livskvalitet. Algoritmer och datastrukturer Sökning, Symbol tabeller Binära sökträd.
För utveckling av verksamhet, produkter och livskvalitet. Algoritmer och datastructurer - En annan sort tänkande, rekursiva metoder -Datastrukturen träd.
Uppgifter/Läxa Lös uppgifterna: 120, 121, 123, 125, 126, 128, 130, 133, 142, 144, 145.
TDP004 Objektorienterad Programmering Fö 5 Minneshantering.
Praktiska grejer Lärare: Erik Ramm-Schmidt Läxorna finns på Wilma
Behandlas under 4 kursträffar i mineralmuseet mars-april 2017
GEOGRAFI.
Men kolla bildspelet vecka 18 först
Nordiska Lärarorganisationers Samråd
Arbetsgrupp ”Hat och hot mot förtroendevalda”
Är en radikal omställning till hållbar konsumtion möjlig och hur påverkar det våra möjligheter till välbefinnande? Jörgen Larsson Assistant professor in.
Välkommen till.
ULA Kompetenscenter - en del av TPY
VISBY IBKs FÖRENINGSTRÄD
Länkade listor á la C/C++
Föreläsning 8: Exempel och problemlösning
Presentationens avskrift:

Stack och Kö -Implementering -Tilllämpningar -- Kapitel 16, 11

Principen med en stack Stacken är en LIFO datastruktur  Last In – First Out  push() Lägg till data i stacken (överst)  pop() Hämta data från stacken (överst)

Principen med en stack Stack push( ’S’ ) push( ’U’ ) push( ’K’ ) push( ’G’ ) push( ’R’ ) pop( ) push( ’Ä’ ) pop( ) S U K K G R Ä

Användningsområden Datorteknik  Metod anrop, Kompilatorer Beräkningsmaskin Omvänd polsk (postfix) notation (1950-talet) Kräver ”ett annat sorts tänkande...” Kraftfull!

Implementeringar Statisk implementation  Arraybaserad Dynamiska implementation  Länkade listor

Med en array... ToS – Top of Stack  Indexerar senast inlagda data Statisk maxstorlek  Dubblering möjlig men kostsam Snabb

Exempel public class Stack <AnyType> { private... public Stack() { } public void push(AnyType data) { } public void pop() { } }

Tillstånd / Konstruktorn private AnyType [] array; private int ToS; public Stack() { array = (AnyType)new Object[50]; ToS = -1; }

Metoden -- ’void push(AnyType data)’ public void push(AnyType data) { if((ToS + 1) < array.length) { ToS++; array[ToS] = data; } }

Metoden -- ’Object pop()’ public AnyType pop() { AnyType value = null; if(ToS >= 0) { value = array[ToS]; ToS--; } return value; }

Med en länkad lista... Arbetar bara mot länken närmast huvudet  Lägger in först i listan  Tar ut först ur listan Långsam  Minnesallokering

Exempel public class Stack { private... public Stack() { } public void push(Object x) { } public Object pop() { }

Tillstånd / Konstruktorn private ListNode topofstack; public Stack() { topofstack = null; }

Metoden -- ’void push(Object data)’ public void push(Object x) { topofstack=new ListNode(x,topofstack); }

Metoden -- ’Object pop()’ public Object pop() { ListNode temp=topofstack; topofstack=topofstack.next return temp.element; }

Implementationsjämförelse Statisk implementation  (Kan ha) mycket outnyttjat minne  Snabb Dynamisk implementation  Minimalt outnyttjat minne  Långsam

Tillämpning-kompilator och miniräknare Beräkning av postfix uttryck -aritmetiska uttryck i infix notation - aritmetiska uttryck i postfix notation Infix till postfix (med en operator stack) Beräkning av postfix uttryck med hjälp av träd.