Tildatenta Lösningsskiss

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

DD1320 Tillämpad datalogi. Lösnings-skiss till tentamen

Fredag 10 juni 2016 kl 8 12

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

Lösningsförslag DD1320/DD

Lösningar Datastrukturer TDA

Föreläsning 4 Datastrukturer (DAT037)

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

Övning 6 - Tillämpad datalogi 2012

Föreläsning 4 Datastrukturer (DAT037)

Föreläsning 9 Innehåll

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

Teoretisk del. Facit Tentamen TDDC (6)

Tentamen Datastrukturer (DAT036/DAT037/DIT960)

Träd Hierarkiska strukturer

Tentamen i Algoritmer & Datastrukturer i Java

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

Tentamen, Algoritmer och datastrukturer

Föreläsning Datastrukturer (DAT036)

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

Trädstrukturer och grafer

Föreläsning 5 Datastrukturer (DAT037)

Teoretisk del. Facit Tentamen TDDC (6)

TDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 8 Erik Nilsson, Institutionen för Datavetenskap, LiU

Föreläsning 14 Innehåll

Föreläsning 9 Datastrukturer (DAT037)

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

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

Tentamen TEN1 HI

Seminarium 13 Innehåll

Grundläggande Datalogi för F

DAI2 (TIDAL) + I2 (TKIEK)

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

Föreläsning 9. Sortering

Föreläsning 3 Datastrukturer (DAT037)

Programkonstruktion och. Datastrukturer

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

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

Övning 7 - Tillämpad datalogi DD1320, TENTAMEN I TILLÄMPAD DATALOGI Tisdagen den 12 januari 2010 kl 14 18

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

Tentamen Datastrukturer, DAT037 (DAT036)

Tentamen Datastrukturer för D2 DAT 035

Algoritmer, datastrukturer och komplexitet

Upplägg. Binära träd. Träd. Binära träd. Binära träd. Antal löv på ett träd. Binära träd (9) Binära sökträd (10.1)

Dugga Datastrukturer (DAT036)

Tentamen i Algoritmer & Datastrukturer i Java

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

Grundläggande Datalogi för F

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

Föreläsning 7: Prioritetskö, trappa heapsort, hashning

Tentamen TEN1 HI

Föreläsning Datastrukturer (DAT037)

Tentamen Datastrukturer (DAT036)

Föreläsning 10 Datastrukturer (DAT037)

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

Övning 6. Komprimering, kryptering, dokumentering & testning

Föreläsning 11 Datastrukturer (DAT037)

Sökning. Översikt. Binärt sökträd. Linjär sökning. Binär sökning. Sorterad array. Linjär sökning. Binär sökning Hashtabeller

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

Lösningsförslag till tentamen Datastrukturer, DAT037,

Algoritmer, datastrukturer och komplexitet

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

Föreläsning 13 Innehåll

BINÄRA TRÄD. (X = pekarvärdet NULL): struct int_bt_node *pivot, *ny; X X X 12 X X 12 X X -3 X X

Föreläsning Datastrukturer (DAT036)

13 Prioritetsköer, heapar

Facit Tentamen TDDC kl (6)

Föreläsning 5: Grafer Del 1

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

Tentamen Datastrukturer D DAT 035/INN960

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

Föreläsning Datastrukturer (DAT036)

Hashtabeller! (& kanske lite sortering)

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.

Kungl. Tekn. Högskolan Förel 1, bild 1 Föreläsning 1: Introduktion ffl Kursinnehåll ffl Javarepetition ffl Referenser ffl Nyckelordet static ffl Klass

TDDI16 Datastrukturer och algoritmer. Prioritetsköer, heapar, Union/Find

Datastrukturer. föreläsning 10. Maps 1

Föreläsning 13 Datastrukturer (DAT037)

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

Föreläsning Datastrukturer (DAT036)

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

Tentamen Datastrukturer, DAT037 (DAT036)

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

Tentamen i Algoritmer & Datastrukturer i Java

Tentamen (del 2) (4 högskolepoäng) i Programkonstruktion och datastrukturer (1DL201)

Föreläsning 13 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å

Föreläsning 2 Datastrukturer (DAT037)

Föreläsning 3 Datastrukturer (DAT037)

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 9 Innehåll

TENTAMEN: Algoritmer och datastrukturer. Läs detta!

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

Tentamen Datastrukturer (DAT036)

Datastrukturer och Algoritmer D0041D

Tentamen i Algoritmer & Datastrukturer i Java

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

Övningsuppgifter #11, Programkonstruktion och datastrukturer

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: Algoritmer och datastrukturer. Läs detta! Uppgifterna är inte avsiktligt ordnade efter svårighetsgrad.

Transkript:

Tildatenta 2017-10-20 Lösningsskiss E-delen 1. KMP PAPPAPARTY next[i] = 0 1 0 2 1 0 4 3 1 1 2. Parent-pekare Utskriftfunktionen fungerar så här: 1. Om noden inte är None a. gör vi först ett rekursivt anrop med den nod som parent pekar på b. och sen skriver vi ut nodens ord Vi anropar med första noden, gör ett rekursivt anrop, men sparar först på stacken. Samma sak för nästa osv... I fjärde rekursiva anropet är parent None, rekursionen avbryts. Sen poppas föregående anrop från stacken, print-satsen utförs, osv.

3. Kryptering One-time pad: viktigt med säker nyckelöverföring. Bägge parter måste ha nyckeln (samma nyckel används vid kryptering och dekryptering). RSA: inte viktigt med säker nyckelöverföring. Den som krypterar meddelandet kan använda offentliga (publika) nyckeln, den som dekrypterar har sin egen privata nyckel, som inte behöver föras över till någon annan. 4. Hasha pappor 5. Komplexitet 1. Vilken Ordo-klass? a. O(nlogn) b. O(n²) c. O(n) d. O(n²) e. O(logn) f. O(k^n) 2. Rangordning: O(logn), O(n), O(nlogn), O(n²), O(k^n)..dvs E C A B/D F

6. Syntax för faderskapstest a) TH01 06,07 b) D5S818 vwa CSF1PO TH01 c) CSF1PO 19,21 19,19 10,21 d) vwa 15,16 CSF1PO 14,14 TH01 7,9 Godkänns inte, <Barn> och <Pappa> saknas/<antal> start ej 0:a Godkänns inte, för många <Locus>/<Mamma> etc saknas Godkänns Godkänns inte, <Locus> istället för <Barn> C-delen 7. Komprimering Många olika jämförelser möjliga. egenskap Huffmankodning Lempel-Ziv antal koder tidskomplexitet = tiden för att 1. skapa koderna 2. komprimeringen: slå upp koden för varje tecken Det finns m = 100 000 tecken (ca 2¹⁷). Varje tecken får en egen binär kod (totalt m koder) på 17 bitar per tecken i medel. Om vissa tecken är vanligare får dessa kortare koder med Huffmankodning. m = antal tecken i skriftspråken n = antal tecken i namnlistan 1.Skapa koderna: - sorting (O(mlogm) - grenar O(mlogm) 2.Komprimeringen: - hashtabell O(m) - koda O(n) Totalt: O(mlogm) + O(n) Tabellen kommer att innehålla inte bara de enskilda tecknen utan också vanliga teckenkombinationer, alltså får tabellen storleken m+x Om vissa följder av tecken förekommer flera gånger hamnar dessa i tabellen och får egna koder. Tabellen blir mycket stor. (Värsta fallet: Anta att vi blandar alfabeten, och att varje namn är k tecken långt. Totala antalet permutationer är m!/(m-k)!) Förslag: Begränsa längden på de teckenföljder som kan läggas in (maxlängd för ett namn). Vi går bara igenom texten en gång (O(n)) och komprimerar samtidigt som vi skapar tabellen. För varje tecken i namnen måste vi slå upp i tabellen, och ev. lägga in en ny kod. Bäst att i förväg skapa hashabell av storlek m+x.

8. Heap eller binärt sökträd 1. Lösning a. Se ovan till vänster. Hepvillkoret måste vara uppfyllt, dvs föräldern större än barnen (eller tvärtom för min-heap), för varje nod. b. Se ovan till höger. Mindre sorteras till vänster, större till höger, gäller för varje nod. c. Struktur och ordning, t ex något av följande: i. En heap måste vara komplett, det måste inte ett binärtäd ii. I en heap måste heapvillkoret vara uppfyllt för varje nod, binärträdet har mindre värden till vänster och större till höger. iii. En heap lagras i en array, ett binärträd har noder med left- och right-pekare iv. Även praktiska experiment duger som svar, t ex prova att stoppa in ett nytt element, skriv ut trädet d. Snabb sökning. e. Sortering (heapsort) eller prioritetskö eller bästaförstsökning.

A-delen : 9. Lukes pappas problem a) Algoritm Indata: Darth:s startpunkt p start Rebellernas gömställe p slut Matrisen connected som anger vilka punkter som är förbundna med maskhål. Utdata: Utskrift av en lista med punkter p start...p slut som ger kortaste vägen 1. Skpa en datastruktur used för använda punkter (se b) 2. Skapa en kö 3. Lägg in en nod p start med förälder None i kön 4. Markera p start som True i used 5. Plocka ut en punkt p ur kön (med dequeue) 6. Gå igenom varje matriselement på p:s rad i matrisen connected: a. Om p i inte redan är använd och om connected[p,p i ] är True: i. Lägg in en nod p i med p som förälder kön ii. Lägg till p i till datastrukturen med använda punkter iii. Avbryt om p = p i slut, skriv ut lösningen (enligt E-uppgift 2) 7. Upprepa från punkt 4 så länge kön inte är tom 8. Om kön blev tom, berätta för Darth att ingen väg finns (om du vågar) b) Datastrukturer A. Boolesk lista used med n platser, använd[i] sätts till True i 5.a.ii B. Kö med noder C. Noder med en punkt och en pappapekare D. (och den givna matrisen connected) c) Demonstrera hur algoritmen fungerar d) Tidskomplexitet Problemträdet blir aldrig större än de n punkterna För varje punkt går vi igenom n-1 matriselement Att kontrollera dumbarn beror på vald datastruktur, men max n Totalt n*(n-1 + n) dvs O(n²)