DAI2 (TIDAL) + I2 (TKIEK)

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

TENTAMEN: Algoritmer och datastrukturer. Läs detta!

TENTAMEN: Algoritmer och datastrukturer. Läs detta!

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

TENTAMEN: Algoritmer och datastrukturer. Läs detta!

TENTAMEN: Algoritmer och datastrukturer. Läs detta!

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

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

Föreläsning 9 Datastrukturer (DAT037)

Föreläsning Datastrukturer (DAT036)

Lösningsförslag till tentamen Datastrukturer, DAT037,

Tentamen Datastrukturer D DAT 035/INN960

Läs detta! Uppgifterna är inte avsiktligt ordnade efter svårighetsgrad. Skriv ditt idnummer på varje blad (så att vi inte slarvar bort dem).

TENTAMEN. Objektorienterade applikationer CHALMERS. 2018/2019, lp 3 DAT055. Uno Holmer

Exempeltenta GruDat 2002/2003

TENTAMEN: Objektorienterad programmering. Läs detta! Skriv din tentamenskod på varje blad (så att vi inte slarvar bort dem).

Tentamen Datastrukturer för D2 DAT 035

Binära sökträd. Seminarium 9 Binära sökträd Innehåll. Traversering av binära sökträd. Binära sökträd Definition. Exempel på vad du ska kunna

Tentamen Datastrukturer, DAT037 (DAT036)

Tentamen Datastrukturer, DAT037 (DAT036)

Tentamen Datastrukturer (DAT036)

Tentamen, Algoritmer och datastrukturer

Tentamen Datastrukturer D DAT 035/INN960

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

Tentamen Datastrukturer (DAT036/DAT037/DIT960)

Tentamen Datastrukturer (DAT036)

Föreläsning 9 Innehåll

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

Lösningsförslag till tentamen

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

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

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

Föreläsning 10 Datastrukturer (DAT037)

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

Datastrukturer. föreläsning 10. Maps 1

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

Lösningar Datastrukturer TDA

Tentamen Datastrukturer D DAT 036/INN960

Algoritmer och datastrukturer 2012, föreläsning 6

Dugga Datastrukturer (DAT036)

Tentamen Datastrukturer (DAT036)

Tentamen i Algoritmer & Datastrukturer i Java

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 4 Datastrukturer (DAT037)

Föreläsning 4 Datastrukturer (DAT037)

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 Datastrukturer (DAT036)

Tentamen kl Uppgift 4. Uppgift 5

Träd Hierarkiska strukturer

CHALMERS TENTAMEN. 2018/2019, lp 1 DAT050. Uno Holmer

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

Lösningsförslag till tentamen Datastrukturer, DAT037,

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

Algoritmer och datastrukturer 2012, fo rela sning 8

Föreläsning 9 Innehåll

Tentamen i Algoritmer & Datastrukturer i Java

Lycka till! TENTAMEN: Objektorienterade applikationer. Läs detta! 1 (6) Tentamen

Programmering fortsättningskurs

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.

Ett generellt träd är. Antingen det tomma trädet, eller en rekursiv struktur: rot /. \ /... \ t1... tn

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

Föreläsning 13 Datastrukturer (DAT037)

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

Föreläsning Datastrukturer (DAT037)

Föreläsning Datastrukturer (DAT036)

Tentamen i Algoritmer & Datastrukturer i Java

Inom datalogin brukar man använda träd för att beskriva vissa typer av problem. Om man begränsar sig till träd där varje nod förgrenar sig högst två

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

Tentamen Datastrukturer D DAT 036/INN960

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

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

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

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

Föreläsning 13 Datastrukturer (DAT037)

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.

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

Datastrukturer. föreläsning 3. Stacks 1

Föreläsning 5. Träd Binära träd Binärt sökträd som ADT Implementering av binärt sökträd Travestera binärt sökträd Sökning Insättning/borttagning

Tentamen TEN1 HI

Tentamen Programmeringsteknik II och NV2 (alla varianter) Skriv bara på framsidan av varje papper.

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

Datastrukturer som passar för sökning. Föreläsning 10 Innehåll. Inordertraversering av binära sökträd. Binära sökträd Definition

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

13 Prioritetsköer, heapar

Tentamen Programmeringsteknik 2 och MN Skrivtid: Inga hjälpmedel.

Abstrakta datatyper. Primitiva vektorer. Deklarera en vektor

Datastrukturer. Föreläsning 5. Maps 1

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

Trädstrukturer och grafer

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

Tentamen, EDA690 Algoritmer och Datastrukturer, Helsingborg

Föreläsning 14 Innehåll

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)

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.

Tentamen Datastrukturer (DAT037)

Föreläsning Datastrukturer (DAT036)

Datastrukturer. föreläsning 10. Maps 1

TENTAMEN: Objektorienterad programmering. Läs detta! Skriv din tentamenskod på varje blad (så att vi inte slarvar bort dem).

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

if (n==null) { return null; } else { return new Node(n.data, copy(n.next));

Transkript:

TNTMN KURSNMN PROGRM: KURSTKNING XMINTOR lgoritmer och datastrukturer I2 (TIL) + I2 (TKIK) 2017/2018, lp 4 LT75 Uno Holmer TI ÖR TNTMN redagen den 1/8 2018, 08.0-12.0 HJÄLPML NSVRIG LÄRR atastrukturer och standardalgoritmer i java elas ut av skrivningsvakten Uno Holmer (examinator) tel. 772 570 besöker tentamen ca kl. 9.0 samt ca 11.15 TUM ÖR NSLG Senast den 19/9 2018 Granskningsdatum meddelas på kursens hemsida ÖVRIG INORM. etygsgränser: - 24p, 4 - p, 5-48p. (max 0p)

1 () TNTMN: lgoritmer och datastrukturer Läs detta! Uppgifterna är inte avsiktligt ordnade efter svårighetsgrad. örja varje uppgift på ett nytt blad. Skriv ditt idnummer på varje blad (så att vi inte slarvar bort dem). Skriv rent dina svar. Oläsliga svar r ä t t a s e j! Programmen skall skrivas i Java 5 eller senare version, vara indenterade och renskrivna, och i övrigt vara utformade enligt de principer som lärts ut i kursen. Onödigt komplicerade lösningar ger poängavdrag. Programkod som finns i tentamenstesen behöver ej upprepas. Givna deklarationer, parameterlistor, etc. får ej ändras, såvida inte annat sägs i uppgiften. Läs igenom tentamenstesen och förbered ev. frågor. I en uppgift som består av flera delar får du använda dig av funktioner klasser etc. från tidigare deluppgifter, även om du inte löst dessa. Lycka till!

2 () Uppgift 1 Välj ett svarsalternativ. Motivering krävs ej. Varje korrekt svar ger två poäng. Garderingar ger noll poäng. 1. Om vi implementerar T:n stack med fält och tillämpar fältdubblering så får båda operationerna push och pop tidskomplexiteten a. O(N) i genomsnitt och O(N) i värsta fall b. O(1) i genomsnitt och O(1) i värsta fall c. O(1) i genomsnitt och O(N) i värsta fall d. O(N) i genomsnitt och O(1) i värsta fall 2. I en algoritm som analyserar källkoden för ett Java- eller -program för att undersöka om varje vänsterparentes har en matchande högerparentes bör vi använda en a. hashtabell b. stack c. IO-kö d. isjointsets. Insättningssortering har tidskomplexiteten a. O(n) i bästa fall och O(n 2 ) i genomsnitt b. O(n log n) i genomsnitt och O(n 2 ) i värsta fall c. O(log n) i bästa fall och O(n 2 ) i värsta fall d. O(n) i bästa fall och O(n log n) i genomsnitt 4. Vilken T används i en effektiv implementering av ijkstras algoritm? a. hashmap b. prioritetskö c. sökträd d. lista e. IO-kö f. stack 5. nge en minsta övre begränsning för kodavsnittets tidskomplexitet: int n =...; // n > 0 int k = 2; boolean p = true; while ( p && n/k >= k ) { if ( n % k == 0 ) p = false; if ( k == 2 ) k++; else k = k + 2; } a. O(2 n ) b. O(n 2 ) c. O(n) d. O(n log n) e. O(log n) f. O( n) (10 p)

() Uppgift 2 öljande typ kan användas för att representera noder i ett binärt träd. public class TreeNode { char element; TreeNode left,right; } tt sätt att ange var ett visst element finns i ett träd är att ange ett spår från roten till elementet. tt spår är en sträng av ettor och nollor, där 1 betyder höger och 0 vänster. Till exempel hittar man X i trädet nedan genom att följa spåren 011 och 10. X X Skriv en rekursiv funktion som returnerar en lista av alla spår till ett sökt element i ett träd. public static List<String> findpaths(treenode t,char x) unktionen skall returnera en lista av strängar av ettor och nollor. et är lämpligt att skriva en hjälpfunktion som adderar ett tecken först i varje sträng i en lista av strängar. xempel: nrop Resultat findpaths(null,'') [] findpaths(t,'') [""] findpaths(t,'') ["0"] findpaths(t,'') ["1"] findpaths(t,'') ["00"] findpaths(t,'') ["01"] findpaths(t,'') ["11"] findpaths(t,'x') ["011","10"] (10 p)

4 () Uppgift a) nge i vilken ordning noderna besöks vid inorder, preorder resp. postorder genomlöpning av trädet: G ( p) b) I VL-trädet nedan finns åtta ställen där insättning av ett element förstör VL-villkoret. ör några av dessa ställen krävs en dubbelrotation för att återställa trädet så att VL-villkoret åter uppfylls och för några ställen är en enkelrotation tillräcklig. nge tal som kräver en dubbelrotation, samt för vilka en enkelrotation räcker. u skall alltså ange åtta olika tal. 1 8 18 4 12 17 19 2 10 14 (4 p) Uppgift 4 a) Rita den binära högen som ett träd: - 1 7 9 12 5 4 20 11 14 17 8 11 127 2 5 0 1 2 4 5 7 8 9 10 11 12 1 14 15 1 b) Rita den binära högen efter anropen insert(11);insert(1);insert(9); (2 p) 10 12 1 18 1 14 15 28 19 ( p)

5 () Uppgift 5 a) eräkna samtliga kortaste viktade avstånd från nod till alla övriga noder med ijkstras algoritm i den av graferna nedan där algoritmen är tillämplig. nge varför algoritmen inte kan användas i det andra fallet: G 1 8 G 2 11 2-1 14 7 2 11 2 15 4 9 5 (5 p) b) nge alla möjliga topologiska ordningar av noderna i grafen: G H (5 p) Uppgift I en viss hashtabell tillämpas kvadratisk sondering för kollisionshantering. Hashfunktionen är hash(x) = x % 12. Vad händer om insättningssekvensen utförs på tabellen: insert(44);insert(8);insert(2);insert(12); 0 1 1 2 4 40 5 7 8 9 57 10 11 Tabellstorleken skall ej ändras. Motivera ditt svar! (8 p)

() Uppgift 7 Konstruera en metod som skriver ut innehållet i noderna i ett binärt träd nivåvis. T.ex. skall utskriften för trädet nedan bli : Trädnoder representeras med typen: public class TreeNode { char element; TreeNode left,right; } tt tomt träd representeras som vanligt med null. n viss datastruktur kan vara användbar i algoritmen. Metoden skall ha signaturen: public static void printlevelorder(treenode t); (10 p)