Tentamen'('Datastrukturer,'algoritmer'och'programkonstruktion.'

Relevanta dokument
Tentamen Datastrukturer (DAT037)

Vad har vi pratat om i kursen?

Tentamen Datastrukturer D DAT 035/INN960

Tentamen Datastrukturer för D2 DAT 035

Tentamen i Algoritmer & Datastrukturer i Java

Datastrukturer, algoritmer och programkonstruktion (DVA104, HT 2014) Föreläsning 5

Datastrukturer och algoritmer. Föreläsning 15 Inför tentamen

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

Tentamen Datastrukturer, DAT037 (DAT036)

Länkade strukturer, parametriserade typer och undantag

Tentamen Datastrukturer D DAT 036/INN960

Lösningar Datastrukturer TDA

Tentamen Datastrukturer D DAT 036/INN960

TDDC91 & TDDE22 & 725G97 Datastrukturer och algoritmer Datortentamen (DAT1) , 08 12

Föreläsning 9 Datastrukturer (DAT037)

Lösningsförslag för tentamen i Datastrukturer (DAT037) från

Tentamen TEN1 HI

Föreläsning Datastrukturer (DAT036)

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

Tentamen Datastrukturer (DAT036/DAT037/DIT960)

Tentamen med lösningsförslag Datastrukturer för D2 DAT 035

Föreläsning Datastrukturer (DAT037)

Föreläsning 6: Introduktion av listor

Föreläsning 14 Innehåll

Tentamen TEN1 HI

Tentamen Datastrukturer (DAT036)

Tentamen Datastrukturer (DAT036)

Datastrukturer och algoritmer

Exempeltenta GruDat 2002/2003

Tentamen Datastrukturer, DAT037 (DAT036)

Teoretisk del. Facit Tentamen TDDC (6)

Tentamen Datastrukturer D DAT 035/INN960

Föreläsning 13 Datastrukturer (DAT037)

KTH, NADA, Vahid Mosavat. 1. Flervalsfrågor (5p)

Föreläsning 2 Datastrukturer (DAT037)

Prov i DAT 312: Algoritmer och datastrukturer för systemvetare

Föreläsning 10 Datastrukturer (DAT037)

Tentamen Datastrukturer D DAT 036/DIT960

Tentamen i Algoritmer & Datastrukturer i Java

DAI2 (TIDAL) + I2 (TKIEK)

Dugga Datastrukturer (DAT036)

Lösningsförslag till exempeltenta 1

Föreläsning 13 Datastrukturer (DAT037)

TENTAMEN: Algoritmer och datastrukturer. Läs detta!

Föreläsning 9 Innehåll

Datastrukturer i kursen. Föreläsning 8 Innehåll. Träd rekursiv definition. Träd

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

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

Anmälningskod: Lägg uppgifterna i ordning. Skriv uppgiftsnummer (gäller B-delen) och din kod överst i högra hörnet på alla papper

Tentamen Grundläggande programmering

Tentamen TEN1 HI

TENTAMEN I DATASTRUKTURER OCH ALGORITMER DVG B kl. 14:00-19:00

Sökning och sortering

Magnus Nielsen, IDA, Linköpings universitet

Tentamen Datastrukturer (DAT036)

TENTAMEN: Algoritmer och datastrukturer. Läs detta!

Lösningsförslag till tentamen Datastrukturer, DAT037,

Tentamen i Algoritmer & Datastrukturer i Java

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

Det är principer och idéer som är viktiga. Skriv så att du övertygar rättaren om att du har förstått dessa även om detaljer kan vara felaktiga.

ORDINARIE TENTAMEN I DATASTRUKTURER OCH ALGORITMER DVG B kl. 08:15 13:15

Föreläsning Datastrukturer (DAT036)

Föreläsning 13. Träd

OMTENTAMEN I DATASTRUKTURER OCH ALGORITMER DVG B kl. 09:00 14:00

Fredag 10 juni 2016 kl 8 12

Programmering för språkteknologer II, HT2014. Rum

Föreläsning 7. Träd och binära sökträd

Tommy Färnqvist, IDA, Linköpings universitet

Föreläsning 3 Datastrukturer (DAT037)

Klassen BST som definierar binära sökträd med tal som nycklar och enda data. Varje nyckel är unik dvs förekommer endast en

Tentamen kl Uppgift 4. Uppgift 5

Tentamen, EDA690 Algoritmer och Datastrukturer, Helsingborg

Måndag 13 mars 2017 kl Rita en KMP-automat för CAMCORDERCAMERA samt ange next-vektorn.

Tildatenta Lösningsskiss

Inlämningsuppgiften. Föreläsning 9 Innehåll. Träd. Datastrukturer i kursen

Trädstrukturer och grafer

F5: Debriefing OU2, repetition av listor, träd och hashtabeller. Carl Nettelblad

TENTAMEN: Algoritmer och datastrukturer. Läs detta!

Programmering för språkteknologer II, HT2014. Rum

Lägg uppgifterna i ordning. Skriv uppgiftsnummer och din kod överst i högra hörnet på alla papper.

TDDC30/725G63. Objektorienterad programmering i Java, datastrukturer och algoritmer

Datastrukturer och algoritmer

Föreläsning 7 Innehåll. Rekursion. Rekursiv problemlösning. Rekursiv problemlösning Mönster för rekursiv algoritm. Rekursion. Rekursivt tänkande:

Lösningsförslag för tentamen i Datastrukturer (DAT036) från

OMTENTAMEN I DATASTRUKTURER OCH ALGORITMER DVG B kl. 14:15 19:15

Föreläsning 9 Innehåll

Tentamen Programmeringsteknik II Skrivtid: Hjälpmedel: Java-bok (vilken som helst) Skriv läsligt! Använd inte rödpenna!

Teoretisk del. Facit Tentamen TDDC kl (6) 1. (6p) "Snabba frågor" Alla svar motiveras väl.

Teoretisk del. Facit Tentamen TDDC kl (6) 1. (6p) "Snabba frågor" Alla svar motiveras väl.

Föreläsning Datastrukturer (DAT037)

Träd, binära träd och sökträd. Koffman & Wolfgang kapitel 6, avsnitt 1 4

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

Föreläsning 11 Datastrukturer (DAT037)

Datastrukturer. föreläsning 3. Stacks 1

Hitta k största bland n element. Föreläsning 13 Innehåll. Histogramproblemet

Föreläsning 13. Rekursion

Algoritmer och datastrukturer 2012, fo rela sning 8

Föreläsning 8 Datastrukturer (DAT037)

Programmering för språkteknologer II, HT2011. Rum

Innehåll. Föreläsning 12. Binärt sökträd. Binära sökträd. Flervägs sökträd. Balanserade binära sökträd. Sökträd Sökning. Sökning och Sökträd

Transkript:

Tentamen'('Datastrukturer,'algoritmer'och'programkonstruktion.' Skrivtid: 08.30 13.30 Hjälpmedel: Inga Lärare: Betygsgränser DVA104' Akademin)för)innovation,)design)och)teknik) Onsdag)2014:01:15) Caroline Uppsäll (kan nås på telefon 021-101456 (070-4616110) Betyg 3: Betyg 4: Betyg 5: Max: 25p (varav minst 6p P-uppgifter) 35p 42p 46p (varav 12p är P-uppgifter) Skriv endast en uppgift per blad Skriv bara på ena sidan av pappret. Referera inte mellan olika svar. Om du är osäker på vad som avses i någon fråga, skriv då vad du gör för antagande. Oläsliga/Oförståeliga svar rättas inte. Kommentera din kod Uppgifter som är markerade som P-uppgifter måste lösas med kod i C (C# eller Ada). Övriga uppgifter behöver inte lösas med kod. Tips: Läs igenom hela tentan innan du börjar skriva för att veta hur du ska disponera din tid. Endast bonuspoäng som intjänats under instansen HT14 period 2 kan användas på denna tentamen. Intjänade bonuspoäng räknas ej till P-uppgifterna Lycka&till&

Uppgift 0 Läs instruktionerna på förstasidan noggrant. Följ dessa genom hela tentamen Uppgift 1 (8p) a) Vad menas med divide & conquer? b) Beskriv ett exempel på en algoritm som använder divide & conquer och på vilket sätt den använder paradigmen. c) Vad är ett annat namn på en LIFO kö? d) Varför vill du kunna mäta en algoritms komplexitet? e) Vad menas med att en sorteringsalgoritm är naturlig? f) Ge ett exempel på en sorteringsalgoritm som är in-place och som är naturlig. g) Beskriv en funktion på en array som har linjär komplexitet förklara också varför den har linjär komplexitet. h) Varför är basfallet viktigt i rekursion? Uppgift 2 (7p) Antag att följande funktion (funk) är given i pseudokod och att node är en nod i en enkellänkad lista (tecknet betyder skiljt från). node Integer data node next funk(node, x) current = node while current = NULL do if current.data = x then return true end if current = current.next end while return false a) Vad gör denna funktion exakt? (1p) b) Implementera denna funktion i kod (2p) P-uppgift c) Implementera en rekursiv version av funktionen som gör precis samma sak (4p) P-uppgift

Uppgift 3 (3p) Du har ett uttryck som innehåller parenteser ( och ). Uttrycket kan också innehålla andra tecken. Beskriv hur du kan med hjälp av nedanstående stack-adt kontrollera om alla parenteser i uttrycket matchar. Alltså om varje ( har en matchande ). Du väljer själv om du vill beskriva detta genom att skriva kod, pseudokod, beskrivande text och/eller genom att rita. Din lösning ska på alla steg vara tydliga och enkla att följa. Exempel på korrekt uttryck är: (x(x)(x(x(xxx)))) Exempel på icke korrekt uttryck är: (x)(x(xxx) Den stack ADT du ska använda dig av kan lagra tecken (characters). Nedan finns dennes interface. Antag att stacken inte kan bli full. Stacken är baserad på en länkad lista där varje nod håller datadel (character) och pekare till nästa nod (next) Stack LinkedList *mystack Precondition: stacken är inte full Postcondition: c ligger högst upp på stacken Returvärde: ingenting Push(character c, stacken) Precondition: det finns tecken på stacken Postcondition: det översta tecknet på stacken är borttaget Returvärde: ingenting Pop(stacken) Precondition: det finns tecken på stacken Postcondition: stacken är oförändrad Returvärde: det översta tecknet character Peek(stacken) Precondition: - Postcondition: stacken är oförändrad Returvärde: true om stacken är tom, annars false. Boolean isempty(stacken)

Uppgift 4 (7p) a) Beskriv hur Quicksort fungerar (1p) b) Visa med bild/bilder (och text om det behövs) hur följande sekvens sorteras med hjälp av Quicksort. (3p) c) Hur påverkar valet av pivot värde Quicksort algoritmens effektivitet? - diskutera (2p) d) Vilken komplexitet har algoritmen i bästa fallet och varför? (1p) Uppgift 5 (8p) a) Beskriv hur en sekvens av data sorteras med hjälp av urvalssortering. (1p) b) Skriv koden för urvalssortering (4p) P-uppgift c) Vilken komplexitet har urvalssortering i bästa fall samt sämsta fall vilka fall är det som är bäst och sämst? (2p) d) Är algoritmen stabil? motivera. (1p) Uppgift 6 (5p) Antag att du har en hashtabell med plats för 10 element- Hashfunktionen är h(x) = (x mod 10) (tips: i praktiken blir detta alltså sista siffran i x). a) Antag att tabellen använder chained-strategin (länkad lista) för att hantera krockar. Visa hur hashtabellen ser ut när följande element satts in i ordning: (2p) 56 12 10 87 26 8 1 30 96 69 43 b) Beskriv hur sökning går till i en listad hashtabell (1p) c) Antag nu istället att tabellen använder öppen adressering för att hantera krockar. Visa hur hashtabellen ser ut när samma sekvens som i a) sätts in (i samma ordning). (2p)

Uppgift 7 (8p) Antag följande träd: a) Är trädet ovan ett binärt sökträd? - motivera (1p) b) Rita om trädet så att det blir ett balanserat binärt sökträd. (1p) c) Antag följande träd och nod: BTree node root node integer data node leftchild node rightchild Skriv koden för att skriva ut trädet i Preorder (rekursivt). (2p) P-uppgift d) Vilken är komplexiteten i det bästa fallet för sökning i ett binärt sökträd? motivera (1p) e) Vilken är komplexiteten i det sämsta fallet för sökning i ett binärt sökträd? motivera (1p) f) Om man vill söka efter ett data i en stor mängd. När bör man använda hashtabell och när behöver man använda binärt sökträd diskutera. (2p)