Stack, specifikation. Stack och Kö. Y s t M A p. Stack. <== > Y s t M A p <== > Prioritetskö

Relevanta dokument
ADT Kö. Seminarium 4 Köer och Stackar Innehåll. Operationer. ADT Stack. Definition. Definition

ADS : STACK ADT: STACK. Stack och Kö -Implementering - Tilllämpningar. Oftast förekommande metoder i Stack. TopOfStack

Föreläsning 3. Stack

Föreläsning 4. Kö Implementerad med array Implementerad med länkad lista Djup kontra bredd Bredden först mha kö

Föreläsning 3. Stack

Tentamen i Algoritmer & Datastrukturer i Java

Tentamen i Algoritmer & Datastrukturer i Java

Exempel ( )

Linjärt minne. Sammanhängande minne är ej flexibelt. Effektivt

Föreläsning 4. ADT Kö Kö JCF Kö implementerad med en cirkulär array Kö implementerad med en länkad lista

TDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 3 Jonas Lindgren, Institutionen för Datavetenskap, LiU

Föreläsning Datastrukturer (DAT036)

F12 - Collections. ID1004 Objektorienterad programmering Fredrik Kilander

Datastrukturer och algoritmer. Föreläsning 4 Test, Stack och Kö

Exempeltenta GruDat 2002/2003

Föreläsning 13. Träd

Föreläsning Datastrukturer (DAT036)

TDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 3 Jonas Lindgren, Institutionen för Datavetenskap, LiU

Tentamen, EDA690 Algoritmer och Datastrukturer, Helsingborg

Datastrukturer, algoritmer och programkonstruktion (DVA104, VT 2015) Föreläsning 6

Föreläsning 4. ADT Kö Kö JCF Kö implementerad med en cirkulär array Kö implementerad med en länkad lista Läsanvisningar och uppgifter

Tommy Färnqvist, IDA, Linköpings universitet

Föreläsning 11. ADT:er och datastrukturer

Datastrukturer. föreläsning 3. Stacks 1

Föreläsning 4 Innehåll

Föreläsning 4 Datastrukturer (DAT037)

TDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 9 Jonas Lindgren, Institutionen för Datavetenskap, LiU

Datastrukturer och algoritmer

Föreläsning 3 Innehåll. Generiska klasser. Icke-generisk lista ArrayList, skiss av implementering. Icke-generisk lista Risk för fel

Datastrukturer och algoritmer

Ordnad lista. Listor... Ordnad lista... Ordnad lista typer

6 Rekursion. 6.1 Rekursionens fyra principer. 6.2 Några vanliga användningsområden för rekursion. Problem löses genom:

Länkade listor kan ingå som en del av språket, dock ej i C Länkade listor är ett alternativ till:

Föreläsning 4 Innehåll. Abstrakta datatypen lista. Implementering av listor. Abstrakt datatypen lista. Abstrakt datatyp

Tentamen i Algoritmer & Datastrukturer i Java

Namn: (Ifylles av student) Personnummer: (Ifylles av student) Tentamensdatum: Tid: Hjälpmedel: Inga hjälpmedel

Programmering i C++ EDA623 Dynamiska datastrukturer. EDA623 (Föreläsning 11) HT / 31

Föreläsning Datastrukturer (DAT037)

Python. Vi har ofta behov av att behandla datastrukturer på ett enhetligt sätt så att vi kan göra samma sak i flera olika program.

Föreläsning Datastrukturer (DAT036)

Användning av stack: evaluera uttryck i RPN

Föreläsning 3 Datastrukturer (DAT037)

Föreläsning 9 Datastrukturer (DAT037)

Lösningsförslag till tentamen Datastrukturer, DAT037,

Länkade strukturer. (del 2)

Abstrakt datatyp. -Algoritmer och Datastrukturer- För utveckling av verksamhet, produkter och livskvalitet.

Programmering i C++ EDAF30 Dynamiska datastrukturer. EDAF30 (Föreläsning 11) HT / 34

TENTAMEN: Objektorienterad programutveckling. Läs detta! Skriv ditt namn och personnummer på varje blad (så att vi inte slarvar bort dem).

Lösningsförslag till tentamen i EDA690 Algoritmer och Datastrukturer, Helsingborg

13 Prioritetsköer, heapar

Kurskod D0010E Datum Skrivtid 5tim

Lösningsförslag till tentamen i EDAA01 programmeringsteknik fördjupningkurs

Grundläggande datalogi - Övning 2

TENTAMEN: Objektorienterad programutveckling, fk. Läs detta! Börja varje hel uppgift på ett nytt blad. Skriv inte i tesen.

Tentamen Datastrukturer D DAT 035/INN960

Föreläsning 10 Innehåll. Prioritetsköer och heapar. ADT Prioritetskö. Interface för Prioritetskö. Exempel på vad du ska kunna

Tentamen Datastrukturer D DAT 035/INN960 (med mycket kortfattade lösningsförslag)

ADT Prioritetskö. Föreläsning 12 Innehåll. Prioritetskö. Interface för Prioritetskö. Prioritetsköer och heapar

ADT Prioritetskö. Föreläsning 13 Innehåll. Prioritetskö vs FIFO-kö. Prioritetskö Exempel på användning. Prioritetsköer och heapar

Lösningsförslag till exempeltenta 2

Det finns en referensbok (Java) hos tentavakten som du får gå fram och läsa men inte ta tillbaka till bänken.

Seminarium 13 Innehåll

Föreläsning 2 Datastrukturer (DAT037)

TDIU01 - Programmering i C++, grundkurs

Föreläsning 13 Innehåll

Tentamen Programmeringsteknik II för STS Skrivtid: Inga hjälpmedel.

Föreläsning 3: Abstrakta datastrukturer, kö, stack, lista

Föreläsning 4 Datastrukturer (DAT037)

Tentamen i Algoritmer & Datastrukturer i Java

Introduktion till algoritmer - Lektion 3 Matematikgymnasiet, Läsåret Lektion 3

Länkade listor, stackar och köer

Tentamen Datastrukturer (DAT036)

Föreläsning 14. Träd och filhantering

Föreläsning Datastrukturer (DAT036)

Skizz till en enkel databas

Tentamen Datastrukturer (DAT036)

Abstrakta datastrukturer

DAI2 (TIDAL) + I2 (TKIEK)

Del A (obligatorisk för alla)

Tentamen, EDAA01 Programmeringsteknik fördjupningskurs

Datalogi, grundkurs 1. Lösningsförslag till tentamen

Data- och programstrukturer

Abstrakta datatyper Laboration 2 GruDat, DD1344

TENTAMEN: Algoritmer och datastrukturer. Läs detta! Uppgifterna är inte avsiktligt ordnade efter svårighetsgrad.

Avbildningar och hashtabeller. Koffman & Wolfgang kapitel 7, mestadels avsnitt 2 4

Det finns en referensbok (Java) hos tentavakten som du får gå fram och läsa men inte ta tillbaka till bänken.

Föreläsningsanteckningar, Introduktion till datavetenskap HT S4 Datastrukturer. Tobias Wrigstad

Föreläsning Datastrukturer (DAT036)

Programmering i C++ EDA623 Containerklasser och algoritmbibliotek. EDA623 (Föreläsning 10) HT / 33

maxlist-1. Indexerad lista Länkad lista

Tentamen i. TDDC67 Funktionell programmering och Lisp

Programmering II (ID1019) :00-12:00

Föreläsning 8 Datastrukturer (DAT037)

Föreläsning 8 Datastrukturer (DAT037)

Tentamen Programmeringsteknik II Inledning. Anmälningskod:

TDDC30 Programmering i Java, Datastrukturer och Algoritmer Lektion 2. Laboration 2 Datastrukturer En liten uppgift Frågor

Sätt att skriva ut binärträd

Datastrukturer. Arrayer. Arrayer. Arrayer. Array av arrayer. Array av arrayer

Abstrakta datatyper. Primitiva vektorer. Deklarera en vektor

Grundläggande datalogi - Övning 4

Transkript:

Stack < == > Stack och Kö Y s t M A p 1 Stack, specifikation En lista med element av typen T. Samtliga operationer utförs endast på listans ena ände, top. Stack() post: stacken är tom 2 Kö == > Y s t M A p == > Dubbeländad Kö (Deueue) <== > Y s t M A p <== > Prioritetskö == > t s p Y M A == > ~Stack() post: stacken är raderad void Push(T e) post: elementet med värdet e finns vid positionen top. void Pop() pre: stacken är inte tom post: Det element som fanns vid stackens top är raderat. Nästa element i stacken är vid toppen. T Top() const pre: stacken är inte tom post: En kopia av de värde som finns vid stackens top har returnerats. Stacken är oförändrad. post: true är returnerad om stacken är tom, i annat fall returneras false

Kö, specifikation En lista med element av typen T. Insättningar av värden utförs endast på listans ena ände, rear. Övriga operationer utförs på listans andra ände, front. Queue() ~Queue() void Enueue(T e) post: elementet med värdet e finns vid positionen rear. void Deueue() post: Det element som fanns vid köns front är raderat. Elementet som följde efter det borttagna element finns nu i köns front. T Front() const post: En kopia av de värde som finns vid köns front har returnerats. Kön är oförändrad. 3 Dubbeländad kö, specifikation En lista med element av typen T. kan endast utförs på listans ändar, head och tail. Deueue() ~Deueue() T RetrieveHead() post: En kopia av de värde som finns vid köns front har returnerats. Kön är oförändrad. T RetrieveTail() post: En kopia av de värde som finns vid köns tail har returnerats. Kön är oförändrad. void InsertHead(T e) post: elementet med värdet e finns vid positionen head. void InsertTail(T e) post: elementet med värdet e finns vid positionen tail. void DeleteHead() post: Det element som fanns vid köns head är raderat. Elementet som följde efter det borttagna element finns nu i köns head. void DeleteTail() post: Det element som fanns vid köns tail är raderat. Elementet som fanns före det borttagna element finns nu i köns tail. 4

Prioritetskö, specifikation 5 Infix, postfix och prefix notation 6 En mängd av positioner med värden av typen T. Positionerna är linjärt ordnade i prioritetsföljd efter den prioritet varje värde har. PriorityQueue() ~PriorityQueue() void Insert(T e) post: elementet med värdet e finns nu i kön T DeleteMin() post: elementet med det minsta värdet är borttaget ur kön. Elementet har returnerats Exempel 1 Infix: A + B Prefix: + A B Postfix: A B + Exempel 3 Infix: (A + B) * C Prefix: * + A B C Postfix: A B + C * Exempel 2 Infix: A + (B * C) Prefix: + * B C A Postfix: A B C * + Exempel 4 Infix: (A + B) * ( C - D) Prefix: * + A B - C D Postfix: A B + C D - *

Egenskaper 7 Beräkning av uttryck i postfix notation 8 Prefix notation Operanderna i uttrycket behandlas i samma ordning som i motsvarande infix-uttryck Parenteser behövs inte long Evaluate_Postfix(TList<Token> post) TStack<Token> eval; while (any tokens remain in post) Token t; Remove a token, t, from the head of post; Postfix notation Operanderna i uttrycket behandlas i samma ordning som i motsvarande infix-uttryck Parenteser behövs inte Ett postfix uttryck är inte det omvända prefix-uttrycket! if (t is a number token) eval.push(t); else long topnum = eval.top(); eval.pop(); long nextnum = eval.top(); eval.pop(); Evaluate answer = nextnum t topnum; eval.push(answer); return eval.top();

Kö implementerad med hjälp av ringbuffert 9 front = (1 + front) % size rear = (1 + rear) % size Kön är tom front och rear pekar på samma element Kön är halvfull front pekar på det första elementet i kön rear pekar på det första lediga elementet efter det sist insatta elementet Kön är full rear är strax bakom front. Sista elementet får inte användas. Ty i så fall förfaller kön att vara tom!