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

Relevanta dokument
Tentamen Datastrukturer D DAT 035/INN960

Datastrukturer och algoritmer

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

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

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

Föreläsning 13 Datastrukturer (DAT037)

Föreläsning Datastrukturer (DAT036)

Tentamen Datastrukturer D DAT 035/INN960

Föreläsning 13 Datastrukturer (DAT037)

Föreläsning Datastrukturer (DAT037)

Datastrukturer. föreläsning 6. Maps 1

Tentamen Datastrukturer, DAT037 (DAT036)

Föreläsning 8 Datastrukturer (DAT037)

Föreläsning 7 Datastrukturer (DAT037)

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

Föreläsning Datastrukturer (DAT036)

Tentamen Datastrukturer för D2 DAT 035

Lösningar Datastrukturer TDA

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

Föreläsning Datastrukturer (DAT037)

Datastrukturer. föreläsning 10. Maps 1

Föreläsning Datastrukturer (DAT037)

Tentamen Datastrukturer, DAT037 (DAT036)

Föreläsning 5: Grafer Del 1

Exempeltenta GruDat 2002/2003

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

Tommy Färnqvist, IDA, Linköpings universitet. 1 ADT Map/Dictionary Definitioner Implementation... 2

TENTAMEN: Algoritmer och datastrukturer. Läs detta!

OMTENTAMEN I DATASTRUKTURER OCH ALGORITMER DVG B kl. 08:15-13:15

DAI2 (TIDAL) + I2 (TKIEK)

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

Magnus Nielsen, IDA, Linköpings universitet

Tentamen, Algoritmer och datastrukturer

Föreläsning 14 Innehåll

Tentamen Datastrukturer (DAT036/DAT037/DIT960)

Tentamen Datastrukturer (DAT036)

Träd Hierarkiska strukturer

TDDC30 Programmering i Java, datastrukturer och algoritmer

Tommy Färnqvist, IDA, Linköpings universitet

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

Tentamen kl Uppgift 4. Uppgift 5

Magnus Nielsen, IDA, Linköpings universitet

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

Länkade strukturer, parametriserade typer och undantag

Datastrukturer. föreläsning 9. Maps 1

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

Datastrukturer. föreläsning 9. Maps 1

Datastrukturer och algoritmer

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

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

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

Seminarium 13 Innehåll

Föreläsning 9 Datastrukturer (DAT037)

Tentamen Datastrukturer (DAT037)

Grafer, allmänt. Med datastrukturen graf menas vanligen: en mängd av noder (vertices) och en mängd av bågar (edges).

Föreläsning 6 Datastrukturer (DAT037)

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

Tentamen i Algoritmer & Datastrukturer i Java

Innehåll. Föreläsning 11. Organisation av Trie. Trie Ytterligare en variant av träd. Vi har tidigare sett: Informell specifikation

Tentamen i Algoritmer & Datastrukturer i Java

TDDB56 DALGOPT Algoritmer och Optimering Tentamen , 8 13

Datastrukturer och algoritmer. Innehåll. Tabell. Tabell - exempel. Gränsyta till Tabell. Tabell. Modell. Hashtabell Relation, lexikon.

Vad har vi pratat om i kursen?

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

Föreläsning 9 Innehåll

TENTAMEN: Algoritmer och datastrukturer. Läs detta!

Föreläsning Datastrukturer (DAT036)

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

Lösningsförslag till tentamen Datastrukturer, DAT037,

Tentamen Datastrukturer D DAT 036/DIT960

Föreläsning 13 Innehåll

Föreläsning 4 Datastrukturer (DAT037)

Teoretisk del. Facit Tentamen TDDC (6)

Programkonstruktion och. Datastrukturer

Dugga Datastrukturer (DAT036)

Föreläsning Datastrukturer (DAT037)

Föreläsning 4: Giriga algoritmer. Giriga algoritmer

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

Tentamen Datastrukturer (DAT036)

Föreläsning 5 Datastrukturer (DAT037)

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

Instruktioner - Datortentamen TDDD73 Funktionell och imperativ programmering i Python

Föreläsning 5: Giriga algoritmer. Kruskals och Prims algoritmer

Datastrukturer och Algoritmer D0041D

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

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

Föreläsning 2 Datastrukturer (DAT037)

Föreläsning 1 Datastrukturer (DAT037)

Lösningsförslag till tentamen Datastrukturer, DAT037 (DAT036), Tiden det tar att utföra en iteration av loopen är oberoende av värdet på

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

TDDC74 Programmering: Abstraktion och modellering Tentamen, onsdag 9 juni 2016, kl 14 18

DD1321, Tentamen i tillämpad programmering och datalogi Lördagen den 18 dexember 2010 kl 13 18

Föreläsning 13. Träd

Facit Tentamen TDDC kl (6)

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

Tentamen Datastrukturer D DAT 036/INN960

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

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

Föreläsning 5: Giriga algoritmer. Kruskals och Prims algoritmer

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

Transkript:

Prov i DAT 312: Algoritmer och datastrukturer för systemvetare Jacek Malec Datavetenskap, LU 11 april 2003 Datum 11 april 2003 Tid 14 19 Ansvarig lärare Jacek Malec (tel. 03 9890431) Hjälpmedel inga Antal frågor 8 Maximalt antal poäng 80 Anvisningar Läs igenom hela skrivningen och notera eventuella oklarheter innan du börjar lösa uppgifterna. Skriv tydligt och klart. Lösningar som inte går att läsa kan naturligtvis inte ge några poäng, och oklara formuleringar kommer förmodligen att misstolkas. Antaganden utöver de som står i uppgiften måste anges. Dessa antaganden får förstås inte förändra den givna uppgiften. För godkänt krävs 50% av maxpoäng. 1

Uppgift 1 (10 p) Terminologi 1. (1.5p) Vad menas med att ett problem tillhör klassen P? Ge åtminstone ett par exempel på sådana problem. 2. (1.5p) Vad är en trie? Ge (rita) ett exempel. 3. (1.5p) Vad är en sammanhängande graf (eng. connected)? Ge ett exempel. 4. (1.5p) Vad är en topologisk ordning? Ge ett exempel. 5. (4p) Vad är en algoritm? Berätta hur en sådan är uppbyggd. Uppgift 2 (10 p) Sortering 1. Beskriv med några rader i naturligt språk algoritmen snabbsortering (Quick-sort). 2. Diskutera dess egenskaper jämfört med andra tänkbara sorteringsmetoder. 3. Visa hur den kommer att fungera för följande sekvens av tal: 45 15 32 6 1 48 22 12 33 20. Anta att det alltid är det näst sista talet i sekvensen som lottas fram som pivot. Uppgift 3 (10 p) Implementation 1. Beskriv åtminstone ett par typiska sätt att i en dator representera prioritetsköer. Diskutera egenskaper hos olika implementationer. Vilka är fördelarna respektive nackdelarna med varje metod? 2. Hur kan en prioritetskö användas för att sortera tal? Beskriv de metoder som motsvarar dina tidigare implementationer. Finns det några fördelar med att sortera mha en prioritetskö? Vilka i så fall? 2

Uppgift 4 (10 p) Abstrakta datatyper 1. Vad menas med en abstrakt datatyp (ADT) och varför är just det namnet rimligt? 2. Ange en möjlig specifikation av en lexikon-adt. 3. Föreslå åtminstone två tänkbara, skilda metoder att implementera lexikon-adtn. Uppgift 5 (10 p) Analys 1. För varje algoritm nedan, ange dess tidskomplexitet i termer av O(.)-notationen. Motiviera ditt svar. (a) Inordning-genomgång av ett binärt träd med 24z noder. Anta att varje nodbesök tar konstant tid. (b) Snabbsortering (Quick-sort) av en sekvens av storlek m, med antagande att pivot-elementet alltid hamnar sist i sekvensen. (c) MST beräkning mha Kruskals algoritm av en graf med k noder och m kanter (bågar). 2. Vad gör följande kod: Algoritm Hemlig(int a) // a är ett positivt heltal int z <- 0 int b <- 1 z <- a while (z > 0) z <- z - 1 b <- b * 2 z <- 0 while (a > 0) z <- z + b a <- a - 1 return z Analysera algoritmens komplexitet utförligt. Konstanter är viktiga här! 3

Uppgift 6 (10 p) Grafer - minimala uppspännande träd Betrakta följande graf G: B 1 C 11 D 4 14 5 6 A G 9 H 9 E 3 J 10 F 1. Hitta det minimala uppspännande trädet (MST) mha Prim-Jarniks algoritm (med ett litet poängavdrag får du använda Kruskals algoritm). Illustrera varje steg som algoritmen utför(helst med en bild). 2. Förklara varför denna algoritm är girig. Uppgift (10 p) Hashtabeller 1. Anta att man sätter in heltal i en hashtabell med länkade listor för kolliderande element. Låt tabellen vara av storleken 5 och ha en hashfunktion h 1 (n) =n mod5. Visa hur tabellen ser ut efter insättning av: 5, 18, 1, 6, 9, 20, 13,, 4, 28, 3, 8, 12, 38. 2. Utför samma uppgift som ovan (med samma datasekvens), men anta att hashfunktionen är h 2 (n) =n mod1, att tabellen har 1 platser och att istället för länkade listor använder man linjär provning (eng. linear probing) för att hantera kolliderande element. 3. Anta att hashtabellen har storlek N. Hur mycket tid tar det att söka ett element k i tabellen, om vi använder länkade listor för kolliderande element. Betrakta både genomsnittfallet och det värsta fallet. Motivera ditt svar. Hur skulle ditt svar ändras om vi använde linjär provning? 4

Uppgift 8 (10 p) Varia 1. Hur skulle Huffman-kodning se ut för bokstäverna i följande text: dogs do not spot hot pots or either cats or bats. Betrakta mellanslag som en separat bokstav. Motivera. 2. Hur skulle ett AVL-träd se ut om man började sätta in element i ett tomt träd och elementen kom i följandeordning:1,2,3,4,5,6,? Lycka till! 5