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

Relevanta dokument
3. Toppkvinnor på hög Låt lådan och de två kvinnornas famnar utgöra stackarna L, K1 respektive K2. Från början finns alla kort i L.

Tentamen kl Uppgift 4. Uppgift 5

Grundläggande Datalogi för F

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

Grundläggande Datalogi för F

Fredag 10 juni 2016 kl 8 12

::= HIHI HIHIHI ::= HAHA HAHAHA

Tentamen Datastrukturer för D2 DAT 035

Tentamen i Algoritmer & Datastrukturer i Java

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

Föreläsning 9 Innehåll

Träd Hierarkiska strukturer

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

Lösningar Datastrukturer TDA

Övning 2. (Länkade) Listor, noder

Sätt att skriva ut binärträd

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

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

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

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

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

DD1320 Tillämpad datalogi. Lösning (skiss) till tenta 20 okt 2011

Tentamen, Algoritmer och datastrukturer

Tentamen TEN1 HI

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

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

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

Föreläsning REPETITION & EXTENTA

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

Övning 4. Hashning, sortering, prioritetskö, bästaförstsökning. Hitta på en perfekt hashfunktion för atomer. Hur stor blir hashtabellen?

Lösningsförslag till tentamen Datastrukturer, DAT037,

Föreläsning 14 Innehåll

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

Tentamen Datastrukturer D DAT 035/INN960

DAI2 (TIDAL) + I2 (TKIEK)

Algoritmanalys. Inledning. Informationsteknologi Malin Källén, Tom Smedsaas 1 september 2016

Tentamen i Algoritmer & Datastrukturer i Java

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

Tentamen i Algoritmer & Datastrukturer i Java

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

Föreläsning Datastrukturer (DAT037)

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

Tentamen TEN1 HI

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

Övningsuppgifter #11, Programkonstruktion och datastrukturer

Exempeltenta GruDat 2002/2003

Programmering för Språkteknologer II. Innehåll. Associativa datastrukturer. Associativa datastrukturer. Binär sökning.

Tentamen Datastrukturer D DAT 036/INN960

Föreläsning 13 Datastrukturer (DAT037)

Föreläsning 11 Datastrukturer (DAT037)

Teoretisk del. Facit Tentamen TDDC (6)

Sökning i ordnad lista. Sökning och sortering. Sökning med vaktpost i oordnad lista

Föreläsning ALGORITMER: SÖKNING, REGISTRERING, SORTERING

13 Prioritetsköer, heapar

Föreläsning 4 Datastrukturer (DAT037)

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

Föreläsning 5 Innehåll

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

Tentamen Datastrukturer (DAT037)

Föreläsning 13 Datastrukturer (DAT037)

Tentamen Datastrukturer D DAT 036/INN960

Programkonstruktion och. Datastrukturer

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

Hashtabeller! (& kanske lite sortering)

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

Sökning och sortering

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

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

Föreläsning 9. Sortering

Tentamen Datastrukturer (DAT036)

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

Introduktionsmöte Innehåll

Föreläsning 5 Innehåll. Val av algoritm och datastruktur. Analys av algoritmer. Tidsåtgång och problemets storlek

Sökning och sortering. Sökning och sortering - definitioner. Sökning i oordnad lista. Sökning med vaktpost i oordnad lista

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

Seminarium 13 Innehåll

TDDC74 Programmering, abstraktion och modellering. Tentamen

Sökning och sortering

Tentamen Datastrukturer (DAT036)

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

Tentamen Datastrukturer, DAT037 (DAT036)

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

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

Abstrakta datatyper. Primitiva vektorer. Deklarera en vektor

Datastrukturer och algoritmer

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

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

Tentamen. Datalogi I, grundkurs med Java 10p, 2D4112, Lördagen den 30 november 2002 kl , salar E33, E34

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.

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

Föreläsning 1 Datastrukturer (DAT037)

Vad har vi pratat om i kursen?

Programmeringsteknik II

Föreläsning 9 Innehåll

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

Objektorienterad programmering E. Algoritmer. Telefonboken, påminnelse (och litet tillägg), 1. Telefonboken, påminnelse (och litet tillägg), 2

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

TDDC30 Programmering i Java, datastrukturer och algoritmer

Föreläsning Datastrukturer (DAT036)

Transkript:

KTH, NADA, Vahid Mosavat 2D1343, TENTAMEN I DATALOGI FÖR ELEKTRO Onsdagen den 31 mars 2004 kl 8-13 Maxpoäng: tenta+bonus = 50+7. Betygsgränser: 25 poäng ger trea, 35 ger fyra, 45 ger femma. Otydliga/svårlästa redogörelser medför poängavdrag. Resultatet anslås senast 14 april på Nadas anslagstavla. Hjälpmedel: En algoritmbok, En Lexikon. 1. Flervalsfrågor (5p) 1.1. Sortering Följande utskrift är mellanresultat av en vektor, vilken sorteringsmetod har man använt? 15, 5, 9, 7, 1, 3 3, 5, 9, 7, 1, 15 3, 5, 1, 7, 9, 15 3, 1, 5, 7, 9, 15 1, 3, 5, 7, 9, 15 A) Quicksort B) Mergesort C) Insättningssortering D) Inget av ovanstående 1.2. Binärt sökträd Hur lagrar man ett binärt sökträd i en stack för att kunna återskapa det? A) I preordning B) I inordning C) I postordning D) Inget av ovanstående 1

1.3. Trappa Antag att man lagrar en heap i form av en vektor så att noden vid index i har vänster barn vid 2i och höger barn vid 2i+1. Heapen från början har följande innehåll: 5, 13, 7, 28, 15, 11, 35, 30, 45, 17, 90 Hur kommer det att se ut om vi lägger till ett nytt tal med värdet 30 i heapen? A) 5, 13, 7, 28, 15, 11, 35, 30, 30, 45, 17, 90 B) 5, 13, 7, 28, 15, 11, 35, 30,30, 45, 17, 90 C) 30, 5, 13, 7, 28, 15, 11, 35, 30, 45, 17, 90 D) 5, 13, 7, 28, 15, 11, 35, 30, 45, 17, 90, 30 1.4. Sökning Det finns 1000 olika tal sorterade i en vektor. Nu vill vi kontrollera om talet 2004 finns i vektorn eller inte. Vilket av följande alternativ passar bäst? A) Linjär sökning B) Breddenförstsökning C) Djupetförstsökning D) Binärsökning 1.5. Stack Antag att s representerar en stack i form av länkade listor. Hur kommer att stacken se ut efter följande operationer? s.push(27); s.push(4711); int x = s.pop(); s.push(11); s.push(47); s.push(x); A) s-> 27-> 11-> 47-> 4711 B) s-> 4711-> 47-> 11-> 27 C) s-> 4711-> 47-> 11-> null-> 27 D) s-> 4711-> 47-> 11-> 4711-> 27 2

2. Effektiv algoritm (5p) Följande uppgift var en tenta uppgift i kursen Algoritmer datastrukturer och komplexitet (fortsättningskurs i datalogi). Man fick två olika korrekta lösningsförslag där den ena visar sig vara mindre effektiv än den andra. Din uppgift är att avgöra vilken av dem som är mest ineffektiv och varför? Följande talföljd är given: 1 2 3 6 11 20 37... Tal nummer N får man fram genom att addera tal nummer N-1, N-2 och N-3 t.ex T(5) = T(4) + T(3) + T(2) Beskriv en algoritm för en funktion som får ett nummer N och beräknar N:te talet i talföljden? Här nedan följer två lösningsförslag i javakod från två olika tentander: Lösningsförslag från student A: static long t( int n ){ if( n < 4 ) return n; else return t( n-1 ) + t( n-2 ) + t( n-3 ); } Lösningsförslag från student B: static long iter( int n ){ if( n < 4 ) return n; long resultat=0; long tal1 = 1; long tal2 = 2; long tal3 = 3; for( int i = 4; i <= n; i++){ resultat = tal1 + tal2 + tal3; tal1 = tal2; tal2 = tal3; tal3 = resultat; } return resultat; } 3

3. Perfekta och kompletta träd (8p) Del1) Metoden perfekt får en root-pekare till ett binärt träd och med hjälp av metoden ska man kunna avgöra om trädet är perfekt (alla nivåer fyllda) eller inte. Beskriv utförligt en rekursiv tanke för metoden.(4p) Del2) Metoden komplett får en root-pekare till ett binärt träd och med hjälp av metoden ska man kunna avgöra om trädet är komplett eller inte. Beskriv utförligt en rekursiv tanke för metoden.(4p) Ett komplett binärt träd har följande egenskaper: Alla nivåer i trädet är kompletta (fyllda) med undantag för den sista nivån. Sista nivån kan vara komplett men om den inte är komplett ska den vara fylld från vänster till höger. 4. Försenad tomte (7p) Tomten har fått många klagomål på utvärderingsformuläret som folk har lämnat in via webben om att han varit försenad. Tomten bestämmer sig för att sortera alla barn efter deras tidsuppfattning med lite barnpsykologi. Då tänker Tomten så att barn som är yngre än 2 år (0<ålder<=2) har nästan ingen tidsuppfattning alls och då gör det inte så mycket att deras julklappar blir försenade. Barn med ålder mellan 2-10 (2<ålder<=10) ska prioriteras först för att de kan lätt bli ledsna och griniga. Barn mellan 10-15 (10<ålder<=15) ska prioriteras näst sist då de brukar visa förståelse om att t.o.m tomten kan bli försenad. Barn som är äldre än 15 ska prioriteras före barn mellan 10-15 och efter 2-10 (dom har ju prioriterats ner under de senaste fem åren). Prioriteten kommer att se ut som nedan: 1- barn mellan 2-10 kommer först, 2- barn äldre än 15 3- barn mellan 10-15 4- barn mellan 0-2 Tomten antar att det finns lika många barn i ovanstående fyra ålderintervall, och det finns 1000,000,000 barn i hela världen. Beskriv den effektivaste sorteringsalgoritmen som tomten kan använda sig av vid förbredelse inför julen. 4

5. Abstrakt datatyp (5p) August Strindberg skrev flera brev om dagen och litteraturforskarna vill databehandla breven. Men vilken datatyp är ett brev? En bild i gifformat? En lång String? En array som kan innehålla strängar? Förklara varför det är bättre men en abstrakt datatyp och ge förslag på vilka metoder man kan vilja ha till den abstrakta brevtypen. 6. Spökenas tio i topp (6p) De ambitiösaste tusen spökena har ordnat en tio-i-top-lista, där de tio spöken som skrämt flest personer på en dag står med. Listan ska uppdateras varje dag. Vilka av följande metoder lämpar sig inte alls, bättre eller sämre jämfört med andra? Motivering krävs.(4p) Damernaförstsortering Quicksort Instättningssortering Urvalssortering Vilken algoritm är bäst i detta fall? Motivering krävs.(2p) 7. Sökningsmetoder (4p) Kursen har tagit upp de fyra sökmetoderna linjärsökning, binärsökning i vektor, binärt sökträd och hashning. Alla metoder är inte alltid lämpliga. Ta för varje metod upp något unikt exempel där just den metoden diskvalicerar sig och beskriv utförligt varför. OBS! Ingen poäng ges för rena algoritmbeskrivningar, du måste komma med konkreta tillämpningar av sökning. 8. Parkeringsplats (10p) Adam bor mitt i Stockholm där att hitta parkeringsplats kan vara ett problem ibland. Följande är givet: Adam får inte parkera utanför markerade områden i bilden. Det är parkeringsförbud längs gatan. Man får endast parkera på några markerade och självklart lediga platser som finns i vissa korsningar. Det är lika långt avstånd mellan alla korsningar. 5

Del 1) Adam kommer hem ganska sent på kvällar och går till jobbet ganska tidigt på morgonen, därför vill han parkera sin bil så nära sin bostad som möjligt. Nämn och beskriv en algoritm (med tillhörande datastrukturer) som hjälper Adam att hitta närmaste möjliga parkeringsplats i området. Vilka datastrukturer behöves? (7p) Del 2) På fredagar är det andra saker som prioriteras först: Adam jobbar inte på lördagar. Det är alltså inte lika viktigt att parkera bilen nära bostaden när det är fredagskväll. Samtidigt är han ganska snål med bränsle, så han vill passera samma gata så få gånger som möjligt när han letar efter parkeringsplats. Nämn och beskriv en algoritm som hjälper Adam att hitta första bästa parkeringsplats så att ovanstående krav uppfylls.vilka datastrukturer behöves? (3p) Lycka till! PÅVERKA KURSEN MED ENAST 9 KLICKNINGAR PÅ KURSENS WEBBSIDA! TACK PÅ FÖRHAND. 6