FÖRELÄSNING 11 DATALOGI I
|
|
- Anita Nyberg
- för 7 år sedan
- Visningar:
Transkript
1 Föreläsning I07 FÖRELÄSNING DATALOGI I Grafer Beatrice Åkerblom beatrice@dsv.su.se Institutionen för Data- och Systemvetenskap SU/KTH
2 Föreläsning I07 Läsanvisningar Michael Main Data Structures & Other Objects Using Java (Upplaga: Second Edition), Addison Wesley, 003, ISBN : Grafer kapitel
3 Föreläsning I07 3 Föreläsningens innehåll Definition av grafbegreppet Användningsområden grafer Implementation av grafer för Genomgång av grafer (traversering) Algoritmer Minimala träd, spanning trees Kortaste vägen Prims algoritm Dijkstras algoritm Programmeringsprojekt
4 Föreläsning I07 Begrepp som kommer att tas upp graf oriktad graf nod riktad graf båge viktad graf väg djupet först -sökning subgraf bredden först -sökning
5 Föreläsning I07 5 Graf en definition En graf är en ickelinjär datastruktur bestående av noder och bågar mellan de ingående noderna. Grafens noder kan vara till varandra hursomhelst. I en graf finns ingen hierarkisk struktur. Vi kan se en graf som en mängd noder N : {A, B, C, D, E} och en mängd nodpar B : {(A, B), (A, C), (B, D), (C, D), (C, E)}
6 Föreläsning I07 6 Exempel på en graf N : {A, B, C, D, E} B : {(A, B), (A, C), (B, D), (C, D), (C, E)} D A E B C
7 Föreläsning I07 7 Fler grafexempel N : {A, B, C, D, E} B : {(A, B), (A, C), (A, D), (A, E), (B, C), (B, D), (B, E), (C, D), (C, E), (D, E)} N : { } B : { } D A E B C Komplett graf Tomma grafen
8 Föreläsning I07 8 Fler grafexempel N : {A, B, C, D, E} B : {(A, B), (A, C), (B, D), (C, D), (C, E)} N : {A, B, C, D, E} B : {(A, B), (A, C), (B, D), (C, D), (C, E)} A D E A D E B B C Två noder är angränsande om det finns en båge mellan dem C En väg är en sekvens av noder där varje par är en båge
9 Föreläsning I07 9 Oriktade grafer N : {A, B, C, D, E} B : {(B, A), (C, A), (D, A), (E, A), (C, B), (D, B), (E, B), (D, C), (E, C), (E, D)} N : {A, B, C, D, E} B : {(A, B), (A, C), (A, D), (A, E), (B, C), (B, D), (B, E), (C, D), (C, E), (D, E)} A D E A D E B B C Exakt samma resultat. Paren är oordnade. C
10 Föreläsning I07 0 Riktade grafer N : {A, B, C, D, E, F, G} B : {(A, B), (A, E), (A, F ), (B, C), (C, D), (D, B), (D, A), (D, G), (G, G)} A B E F C D G Varje båge har en utgångspunkt och ett mål Ordningen har betydelse.
11 Föreläsning I07 Viktade grafer N : {A, B, C, D, E, F, G} B : {(A, B), (A, E), (A, F ), (B, C), (C, D), (D, B), (D, A), (D, G), (G, G)} A B 3 C 7 D E G F 5 Varje båge har ett värde (ett icke-negativt tal). En viktad graf kan vara riktad eller oriktad
12 Föreläsning I07 Vad kan vi använda grafer till? Beskriva tunnelbanenätet Grön linje Röd linje Navigation på en webbsida Beskriva ett datornätverk Automater Beskriva förhållandet mellan objekt i ett objektorienterat program
13 Föreläsning I07 3 Vad behöver vi kunna göra med en graf? Lägga till och at bort noder Lägga till och ta bort bågar Ta reda på vilken information som är knuten till en viss nod Ta reda på om det finns någon båge mellan två noder och i så fall ta reda på vilken information den innehåller. Markera att vi besökt en viss nod i en genomgång och sedan undersöka om en viss nod är besökt eller ej Markera att vi passerat en viss båge i en genomgång och sedan undersöka om en viss båge har passerats eller ej
14 Föreläsning I07 Hur kan vi implementera en graf? Matris över angränsande noder (adjacency matrix) Tvådimensionell array med indikatorer för de olika bågarna Lista över bågarna Varje nod har en lista över angränsande noder Mängd med bågar Array med mängder av angränsande noder
15 Föreläsning I07 5 Matris över angränsande noder B A int[][] matris ={ { } { 0 { } } { { 0 { 0 { } } } }} C D E G F Från A B C D E F G Till A B C D E F G falsetrue false false falsetrue true true false false false false false false false falsetrue false false false true true false false false falsetrue false false false false false false false false false false false false false false false false false false false falsetrue
16 Föreläsning I07 6 Lista över bågarna noderna Nod[] noderna = new Nod[7]; 0 [0] [] [] [3] [] [5] [6]
17 Föreläsning I07 7 Lista över bågarna, forts. class Nod {... private Bage baglista;... } class Bage {... private Nod nod; private Bage next;... }
18 Föreläsning I07 8 Mängd med bågarna noderna Nod[] noderna = new Nod[7]; 0 [0] [] [] [3] [] [5] [6]
19 Föreläsning I07 9 Mängd med bågarna, forts. class Nod {... private BagMangd bagar;... } class BagMangd {... private int antal; private int[] nodnummer;... }
20 Föreläsning I07 0 Vilken slags representation skall vi välja? Matris över angränsande noder (adjacency matrix) Lätt att implementera Tar stor plats Onödigt om det är en graf med få bågar Lägga till och ta bort bagar/noder Undersöka om en viss båge finns Vilka operationer görs ofta? Det finns ingen grafimplementation som är den bästa i alla sammanhang
21 Föreläsning I07 Genomgång av en graf traversering Genomgång av en graf tills dess att man besökt alla de noder man kan nå. Beroende av var man börjar sin genomgång. djupet först -genomgång Använder en stack för att hålla reda på vilka noder man redan besökt Kan även implementeras med hjälp av rekursion bredden-först -genomgång Använder en kö för att hålla reda på vilka noder man redan besökt. I båda fallen ser man till att markera redan besökta noder för att undvika loopar i genomgången
22 Föreläsning I07 Djupet först -genomgång Vid en genomgång med djupet först strategin går man först så långt som möjligt på en viss väg (till vi stöter på en återvändsgränd eller en nod vi redan besökt. sedan backar vi tillbaka till den senast besökta noden med angränsande noder som ännu inte markerats som besökta
23 Föreläsning I07 3 Djupet först rekursiv noderna Nod[] noderna = new Nod[7]; 0 [0] [] [] [3] [] [5] [6] djupf(graf g, Nod n, boolean[] markerad){ markera n; behandla n; förvarje granne till n{ djupf(g, granne, markerad) } }
24 Föreläsning I07 Djupet först iterativ djupf(nod n) { // går igenom en graf med början i noden n Stack s = createstack(); s.push(n); // pusha n på stacken och markera den som besökt n.markera(); while(!s.isempty()) { if(n.allagrannarbesokta()){ s.pop(); // backar } else { välj obesökt nod m, granne till n s.push(m); m.markera(); } } }
25 Föreläsning I07 5 Djupet först, forts. noderna Nod[] noderna = new Nod[7]; 0 [0] [] [] [3] [] [5] [6] djupf(graf g, Nod n, boolean[] markerad){ markera n; behandla n; förvarje granne till n{ djupf(g, granne, markerad) } }
26 Föreläsning I07 6 Bredden först -genomgång Vid en genomgång med bredden först -strategin besöker vi först alla de noder som gränsar till utgångspunkten sedan fortsätter man till den första av grannarna besöker först alla dess grannar sedan fortsätter man till den första av dess grannar
27 Föreläsning I07 7 Bredden först -genomgång noderna Nod[] noderna = new Nod[7]; 0 [0] [] [] [3] [] [5] [6]
28 Föreläsning I07 8 Djupet först iterativ breddf(nod n) { // går igenom en graf med början i noden n Queue q = createqueue(); q.enqueue(n); // lägg till n i kön och markera den som besökt n.markera(); while(!q.isempty()) { Nod m = q.dequeue(); for(varje obesökt o granne till m){ o.markera(); q.enqueue(o); } } }
29 Föreläsning I07 9 Bredden först -genomgång igen noderna Nod[] noderna = new Nod[7]; 0 [0] [] [] [3] [] [5] [6]
30 Föreläsning I07 30 Djupet först i f a e b 3 7 g c 5 d h Besökt nod a b c d g e back f back Stack botten topp a ab abc abcd abcdg abcdge abcdg abcdgf abcdg......
31 Föreläsning I07 3 Djupet först, forts. i a 6 9 b 7 c Besökt nod Stack botten topp back abcd f e 8 3 g 5 d h h back back back back i back abcdh abcd abc ab a ai (tom)
32 Föreläsning I07 3 Bredden först i f a e b 3 7 g c 5 d h Besökt nod a b f i c e Kö uttag insättn. a (tom) b bf bfi fi fic fice ice......
33 Föreläsning I07 33 Bredden först, forts i f a e b 3 7 g c 5 d h Besökt nod Kö uttag insättn g iceg ceg eg d egd gd d (tom) h h (tom)
34 Föreläsning I07 3 Kostnad Ofta vill vi veta mer än bara att det finns en väg Kostnad förknippad med bågarna hitta billigaste vägen A B 3 C 7 D E G F 5
35 Föreläsning I07 35 Spanning trees Väg genom alla noderna i en hel graf Alla noder förbundna med vissa, så få som möjligt, av bågarna Kortaste vägen genom en hel graf minimalt spanning tree, minimalt antal bågar och minimal vikt b 3.0 e b e a 8.0 c 0.0 f a 8.0 c 0.0 f d.0 g d g Graf Spanning Tree (inte minimalt)
36 Föreläsning I07 36 Hitta minimalt spanning tree Prims algoritm Använder sig av två olika samlingar, en för sorteringen och en för slutresultatet Går igenom en graf och stoppar in alla bågar i en prioritetskö och plockar ut dem igen
37 Föreläsning I07 37 Prims algoritm, forts. Börja med ett tomt träd T och en tom prioritetskö P K Lägg in noden (n, m, v) i P K tills vi i P Khar så många bågar som vi har från utgångsnoden i grafen Loopa och ta ut ur P K den båge som har lägst vikt (n, m, v), om m inte redan finns i T, lägg till både noden m och bågen (n, m).
38 Föreläsning I07 38 Prims algoritm, exempel b 3.0 e a 8.0 c 0.0 f d.0 g Träd a Prioritetskö < a, b, 5.0 >< a, d, 7.0 >< a, c, 8.0 > b 5.0 a < b, e, 3.0 >< a, d, 7.0 >< a, c, 8.0 >
39 Föreläsning I07 39 Prims algoritm, exempel, forts. b 3.0 e a 8.0 c 0.0 f d.0 g Träd 5.0 a b 3.0 e Prioritetskö < b, e, 3.0 >< a, d, 7.0 >< a, c, 8.0 > b 3.0 e 5.0 a 7.0 < a, d, 7.0 >< a, c, 8.0 >< e, c, 8.0 > d
40 Föreläsning I07 0 Prims algoritm, exempel, forts. Träd b 3.0 e Prioritetskö 5.0 a < d, g,.0 >< d, f, 8.0 >< a, c, 8.0 > < e, c, 8.0 > 7.0 d b 3.0 e 5.0 a 7.0 < g, f,.0 >< d, f, 8.0 >< a, c, 8.0 > < e, c, 8.0 > d.0 g
41 Föreläsning I07 Prims algoritm, exempel, forts. Träd b 3.0 e Prioritetskö 5.0 a f < d, f, 8.0 >< a, c, 8.0 >< f, c, 0.0 > < e, c, 8.0 > d.0 g b 3.0 e 5.0 a c f.0 < f, c, 0.0 >< e, c, 8.0 > < e, c, 8.0 > d.0 g
42 Föreläsning I07 Kortaste vägen Kortaste vägen mellan två noder i en graf är den väg där summan av bågarnas vikter är den minsta A B 3 C 7 D E G F 5
43 Föreläsning I07 3 Kortaste vägen, forts. Dijkstras algoritm för att hitta kortaste vägenmellan två noder i en graf ger i själva verket kortaste vägen från utgångspunkten till alla andra noder i grafen. Algoritmen använder sig av en mängd för utvalda noderoch en array för vikterna Vikterna representerar den kortaste vägen mellan utgångspunkten och noden n som passerarnoder i nodmängden
44 Föreläsning I07 Dijkstras algoritm // Hittar kortaste vägen från en viss utgångspunkt, nod 0 och // alla andra noder i den viktade och riktade grafen mingraf // Arrayen vikt innehåller mingrafs vikter, som är icke-negativa kortaste(mingraf, vikt) { // Steg : initiering Skapa en mängd nodmängd som bara innehåller noden 0 n = antal noder i minvikt[v] = matrix[0][nod] g // Steg : upp till n // Om nod inte finns i nodmängden, så är vikt[nod] den // kortaste vägen av alla vägar från 0 till nod som endast // passerar genom noder som finns i nodmängden // Om nod finns i nodmängden så är vikt[nod] den kortaste av // alla vägar från 0 till nod (inklusive vägar som finns // utanför nodmängden och kortaste vägen från 0 till nod
45 Föreläsning I07 5 Dijkstras algoritm // finns helt och hållet i nodmängden for (steg = s through n) { Hitta kortaste vägen vikt[nod] där nod inte finns i nodmängden Lägg till v i nodmängden } // Undersök vikt[i] för alla i som inte finns i nodmängden for (alla noder i som inte finns i nodmängden) { if (vikt[i] > vikt[nod] + matrix[nod][i]) { vikt [i] = vikt[nod] + matrix[nod][i] } }
46 Föreläsning I07 6 Dijkstras algoritm Steg Nod Nodmängd [0] [] [] [3] [] , ,, ,,, ,,,,
47 Föreläsning I07 7 Dijkstras algoritm
Grafer, allmänt. Med datastrukturen graf menas vanligen: en mängd av noder (vertices) och en mängd av bågar (edges).
Grafer, allmänt Allmänt Med datastrukturen graf menas vanligen: en mängd av noder (vertices) och en mängd av bågar (edges). En graf kan vara riktad (directed) eller oriktad (undirected). En graf kan vara
Läs merFöreläsning 10. Grafer, Dijkstra och Prim
Föreläsning 10 Grafer, Dijkstra och Prim Föreläsning 10 Grafer Representation av grafer Dijkstras algoritm Implementation av Dijkstras algoritm Minimium spanning tree Läsanvisning och uppgifter Broarna
Läs merFöreläsning 10. Grafer, Dijkstra och Prim
Föreläsning 10 Grafer, Dijkstra och Prim Föreläsning 10 Grafer Representation av grafer Dijkstras algoritm Implementation av Dijkstras algoritm Minimium spanning tree Läsanvisning och uppgifter Broarna
Läs merFöreläsning Datastrukturer (DAT036)
Föreläsning Datastrukturer (DAT036) Nils Anders Danielsson 2013-11-13 Idag Grafer: Terminologi. Datastrukturer. Topologisk sortering. Kortaste vägen. Bredden först-sökning. Dijkstras algoritm. (Vi får
Läs merFöreläsning Datastrukturer (DAT037)
Föreläsning Datastrukturer (DAT037) Nils Anders Danielsson 2015-11-20 Idag Grafer: Terminologi. Datastrukturer. Topologisk sortering. Kortaste vägen. Bredden först-sökning. Dijkstras algoritm. (Vi får
Läs merFöreläsning 7 Datastrukturer (DAT037)
Föreläsning 7 Datastrukturer (DAT037) Fredrik Lindblad 1 2016-11-21 1 Slides skapade av Nils Anders Danielsson har använts som utgångspunkt. Se http://www.cse.chalmers.se/edu/year/2015/course/dat037 Förra
Läs merFöreläsning 6 Datastrukturer (DAT037)
Föreläsning 6 Datastrukturer (DAT037) Fredrik Lindblad 1 15 november 2017 1 Slides skapade av Nils Anders Danielsson har använts som utgångspunkt. Se http://www.cse.chalmers.se/edu/year/2015/course/dat037
Läs merFöreläsning 10. Grafer, Dijkstra och Prim
Föreläsning 10 Grafer, Dijkstra och Prim Föreläsning 10 Grafer Representation av grafer Dijkstras algoritm Implementation av Dijkstras algoritm Minimium spanning tree Broarna i Königsberg, Euler, 17 Grafer
Läs merFöreläsning Datastrukturer (DAT036)
Föreläsning Datastrukturer (DAT036) Nils Anders Danielsson 2012-11-13 Idag Mer om grafer: Topologisk sortering. Kortaste vägen. Bredden först-sökning. Dijkstras algoritm. Floyd-Warshall. Topologisk sortering
Läs merFöreläsning Datastrukturer (DAT036)
Föreläsning Datastrukturer (DAT036) Nils Anders Danielsson 2013-11-25 Idag Starkt sammanhängande komponenter Duggaresultat Sökträd Starkt sammanhängande komponenter Uppspännande skog Graf, och en möjlig
Läs merFöreläsning Datastrukturer (DAT036)
Föreläsning Datastrukturer (DAT036) Nils Anders Danielsson 2013-11-18 Idag Mer om grafer: Minsta uppspännande träd (för oriktade grafer). Prims algoritm. Kruskals algoritm. Djupet först-sökning. Cykel
Läs merTrädstrukturer och grafer
Översikt Trädstrukturer och grafer Trädstrukturer Grundbegrepp Binära träd Sökning i träd Grafer Sökning i grafer Programmering tillämpningar och datastrukturer Varför olika datastrukturer? Olika datastrukturer
Läs merFöreläsning 8 Datastrukturer (DAT037)
Föreläsning 8 Datastrukturer (DAT037) Fredrik Lindblad 1 2016-11-23 1 Slides skapade av Nils Anders Danielsson har använts som utgångspunkt. Se http://www.cse.chalmers.se/edu/year/2015/course/dat037 Förra
Läs merFöreläsning Datastrukturer (DAT037)
Föreläsning Datastrukturer (DAT037) Nils Anders Danielsson 2015-11-23 Idag Mer om grafer: Minsta uppspännande träd (för oriktade grafer). Djupet först-sökning. Minsta uppspännande träd Träd (utan rot)
Läs merTNK049 Optimeringslära
TNK49 Optimeringslära Clas Rydergren, ITN Föreläsning 7 Nätverksoptimering Billigaste uppspännande träd (MST) Billigaste väg (SP) Projektnätverk Minkostnadsflödesproblem Agenda Terminologi för grafer/nätverk
Läs merGrafer, traversering. Koffman & Wolfgang kapitel 10, avsnitt 4
Grafer, traversering Koffman & Wolfgang kapitel 1, avsnitt 4 1 Traversering av grafer De flesta grafalgoritmer innebär att besöka varje nod i någon systematisk ordning precis som med träd så finns det
Läs merTentamen, Algoritmer och datastrukturer
UNDS TEKNISKA ÖGSKOA (6) Institutionen för datavetenskap Tentamen, Algoritmer och datastrukturer 23 8 29, 8. 3. Anvisningar: Denna tentamen består av fem uppgifter. Totalt är skrivningen på 36 poäng och
Läs merFöreläsning 8 Datastrukturer (DAT037)
Föreläsning 8 Datastrukturer (DAT037) Fredrik Lindblad 1 22 november 2017 1 Slides skapade av Nils Anders Danielsson har använts som utgångspunkt. Se http://www.cse.chalmers.se/edu/year/2015/course/dat037
Läs merTentamen Datastrukturer (DAT036)
Tentamen Datastrukturer (DAT036) Datum och tid för tentamen: 2013-12-16, 14:00 18:00. Ansvarig: Nils Anders Danielsson. Nås på 0700 620 602 eller anknytning 1680. Besöker tentamenssalarna ca 15:00 och
Läs merFöreläsning 5: Grafer Del 1
2D1458, Problemlösning och programmering under press Föreläsning 5: Grafer Del 1 Datum: 2006-10-02 Skribent(er): Henrik Sjögren, Patrik Glas Föreläsare: Gunnar Kreitz Den här föreläsningen var den första
Läs merFöreläsning 3: Abstrakta datastrukturer, kö, stack, lista
Föreläsning 3: Abstrakta datastrukturer, kö, stack, lista Abstrakt stack Abstrakt kö Länkade listor Abstrakta datatyper Det är ofta praktiskt att beskriva vilka operationer man vill kunna göra på sina
Läs merGraphs (chapter 14) 1
Graphs (chapter ) Terminologi En graf är en datastruktur som består av en mängd noder (vertices) och en mängd bågar (edges) en båge är ett par (a, b) av två noder en båge kan vara cyklisk peka på sig själv
Läs merExempeltenta GruDat 2002/2003
Exempeltenta GruDat 2002/2003 Endast ett svarsalternativ på varje fråga är korrekt. Felaktigt svar eller felaktigt antal ikryssade svarsalternativ ger noll poäng på uppgiften. Obs: Den riktiga tentan kommer
Läs merFöreläsning 7. Träd och binära sökträd
Föreläsning 7 Träd och binära sökträd Föreläsning 7 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 Läsanvisningar och
Läs merFöreläsning 8: Exempel och problemlösning
TDA 545: Objektorienterad programmering Föreläsning 8: Exempel och problemlösning Magnus Myréen Chalmers, läsperiod 1, 2015-2016 De tre senaste föreläsningarna Läsanvisning: kap 2 & 13 meddelanden och
Läs merFöreläsning 4. Kö Implementerad med array Implementerad med länkad lista Djup kontra bredd Bredden först mha kö
Föreläsning 4 Kö Implementerad med array Implementerad med länkad lista Djup kontra bredd Bredden först mha kö Kö (ADT) En kö fungerar som en kö. Man fyller på den längst bak och tömmer den längst fram
Läs merTentamen i Algoritmer & Datastrukturer i Java
Tentamen i Algoritmer & Datastrukturer i Java Hjälpmedel: Skrivhjälpmedel, miniräknare. Ort / Datum: Halmstad / 2008-05-27 Skrivtid: 4 timmar Kontakt person: Nicolina Månsson, tel. 035-167487 Poäng / Betyg:
Läs merTDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 8 Erik Nilsson, Institutionen för Datavetenskap, LiU
TDDC30 Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 8 Erik Nilsson, Institutionen för Datavetenskap, LiU På denna föreläsning: Träd Traversering Insättning, borttagning
Läs merFöreläsning 4 Datastrukturer (DAT037)
Föreläsning 4 Datastrukturer (DAT037) Fredrik Lindblad 1 2016-11-10 1 Slides skapade av Nils Anders Danielsson har använts som utgångspunkt Se http://wwwcsechalmersse/edu/year/2015/course/dat037 Förra
Läs merOMTENTAMEN I DATASTRUKTURER OCH ALGORITMER DVG B kl. 08:15-13:15
OMTENTAMEN I DATASTRUKTURER OCH ALGORITMER DVG B03 170331 kl. 08:15-13:15 Ansvarig Lärare: Donald F. Ross Hjälpmedel: Inga. Algoritmerna finns i de respektive uppgifterna eller i bilagarna. *** OBS ***
Läs merFöreläsning 2 Datastrukturer (DAT037)
Föreläsning 2 Datastrukturer (DAT037) Fredrik Lindblad 1 2016-11-02 1 Slides skapade av Nils Anders Danielsson har använts som utgångspunkt. Se http://www.cse.chalmers.se/edu/year/2015/course/dat037 Tidskomplexitet
Läs merDatastrukturer och Algoritmer D0041D
Luleå Tekniska Universitet 19 mars 2014 Laborationsrapport Laboration 3 Datastrukturer och Algoritmer D0041D Primms Algoritm Namn E-mail Magnus Björk magbjr-3@ltu.student.se Handledare Felix Hansson Primms
Läs merTentamen Datastrukturer, DAT037 (DAT036)
Tentamen Datastrukturer, DAT037 (DAT036) Datum, tid och plats för tentamen: 2017-08-17, 8:30 12:30, M. Ansvarig: Fredrik Lindblad. Nås på tel nr. 031-772 2038. Besöker tentamenssalarna ca 9:30 och ca 11:00.
Läs merObjektorienterad Programkonstruktion. Föreläsning 9 30 nov 2016
Objektorienterad Programkonstruktion Föreläsning 9 30 nov 2016 Collections Ett samlingsnamn på objekt som innehåller en samling av andra objekt Det finns många olika sorters Collections, t.ex listor, träd,
Läs merTentamen Datastrukturer (DAT036/DAT037/DIT960)
Tentamen Datastrukturer (DAT036/DAT037/DIT960) Datum och tid för tentamen: 2016-04-07, 14:00 18:00. Författare: Nils Anders Danielsson. (Tack till Per Hallgren och Nick Smallbone för feedback.) Ansvarig:
Läs merFöreläsning 6 Datastrukturer (DAT037)
Föreläsning 6 Datastrukturer (DAT037) Fredrik Lindblad 1 2016-11-17 1 Slides skapade av Nils Anders Danielsson har använts som utgångspunkt. Se http://www.cse.chalmers.se/edu/year/2015/course/dat037 Förra
Läs merInlämningsuppgiften. Föreläsning 9 Innehåll. Träd. Datastrukturer i kursen
Föreläsning 9 Innehåll Inlämningsuppgiften De föreläsningar som inlämningsuppgiften bygger på är nu klara. Det är alltså dags att börja arbeta med inlämningsuppgiften. Träd, speciellt binära träd egenskaper
Läs merOMTENTAMEN I DATASTRUKTURER OCH ALGORITMER DVG B kl. 09:00 14:00
OMTENTAMEN I DATASTRUKTURER OCH ALGORITMER DVG B03 160402 kl. 09:00 14:00 Ansvarig Lärare: Donald F. Ross Hjälpmedel: Inga. Algoritmerna finns i de respektive uppgifterna eller i bilogarna. *** OBS ***
Läs merTDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 9 Jonas Lindgren, Institutionen för Datavetenskap, LiU
TDDC30 Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 9 Jonas Lindgren, Institutionen för Datavetenskap, LiU På denna föreläsning: Prioritetskö Heap Representation som
Läs merFöreläsning 9 Innehåll
Föreläsning 9 Innehåll Träd, speciellt binära träd egenskaper användningsområden implementering Datavetenskap (LTH) Föreläsning 9 HT 2017 1 / 31 Inlämningsuppgiften De föreläsningar som inlämningsuppgiften
Läs merFöreläsning 14 Innehåll
Föreläsning 14 Innehåll Abstrakta datatyper, datastrukturer Att jämföra objekt övriga moment i kursen Om tentamen Skriftlig tentamen både programmeringsuppgifter och teoriuppgifter Hitta fel i fingerade
Läs merFöreläsning 6. Rekursion och backtracking
Föreläsning 6 Rekursion och backtracking Föreläsning 6 Bredden först med hjälp av kö Lista rekursivt Tornet i Hanoi Backtracking Hissen i lustiga huset Huset har n antal våningar (bottenvåningen som räknas
Läs merDD1320 Tillämpad datalogi. Lösning (skiss) till tenta 20 okt 2011
DD1320 Tillämpad datalogi Lösning (skiss) till tenta 20 okt 2011 1 KMP P I P P I N i 1 2 3 4 5 6 Next[i] 0 1 0 2 1 3 2 Huffmankodning: Algoritmen 1. Sortera tecknen som ska kodas i stigande förekomstordning.
Läs merFöreläsning 9 Datastrukturer (DAT037)
Föreläsning Datastrukturer (DAT07) Fredrik Lindblad 27 november 207 Slides skapade av Nils Anders Danielsson har använts som utgångspunkt Se http://wwwcsechalmersse/edu/year/20/course/dat07 Innehåll 2
Läs merTentamen i Algoritmer & Datastrukturer i Java
Tentamen i Algoritmer & Datastrukturer i Java Hjälpmedel: Skrivhjälpmedel, miniräknare. Ort / Datum: Halmstad / 2007-03-13 Skrivtid: 4 timmar Kontakt person: Nicolina Månsson, tel. 035-167487 Poäng / Betyg:
Läs merAbstrakta datatyper. Primitiva vektorer. Deklarera en vektor
Abstrakta datatyper 1 Primitiva vektorer Vektorer kan skapas av primitiva datatyper, objektreferenser eller andra vektorer. Vektorer indexeras liksom i C från 0. För att referera en vektor används hakparenteser.
Läs merDatastrukturer och algoritmer. Föreläsning 15 Inför tentamen
Datastrukturer och algoritmer Föreläsning 15 Inför tentamen 1 Innehåll Kursvärdering Vi behöver granskare! Repetition Genomgång av gammal tenta 2 Första föreläsningen: målsättningar Alla ska höja sig ett
Läs merFöreläsning 4 Datastrukturer (DAT037)
Föreläsning 4 Datastrukturer (DAT07) Fredrik Lindblad 1 november 2017 1 Slides skapade av Nils Anders Danielsson har använts som utgångspunkt Se http://wwwcsechalmersse/edu/year/2015/course/dat07 1 Innehåll
Läs merFöreläsning 3 Datastrukturer (DAT037)
Föreläsning 3 Datastrukturer (DAT037) Fredrik Lindblad 1 6 november 2017 1 Slides skapade av Nils Anders Danielsson har använts som utgångspunkt Se http://wwwcsechalmersse/edu/year/2015/course/dat037 1
Läs merTentamen, EDA501/EDAA20 Programmering M MD W BK L
LUNDS TEKNISKA HÖGSKOLA 1(6) Institutionen för datavetenskap Tentamen, EDA501/EDAA20 Programmering M MD W BK L 2017 05 31, 8.00 13.00 Anvisningar: Preliminärt ger uppgifterna 9 + 12 + 10 + 9 = 40 poäng.
Läs merAbstrakt datatyp. -Algoritmer och Datastrukturer- För utveckling av verksamhet, produkter och livskvalitet.
-Algoritmer och Datastrukturer- Abstrakt datatyp Datatyp för en variabel Betecknar i ett programmeringsspråk den mängd värden variabeln får anta. T ex kan en variabel av typ boolean anta värdena true och
Läs merTentamen Datastrukturer (DAT037)
Tentamen Datastrukturer (DAT07) Datum och tid för tentamen: 2016-01-09, 14:00 18:00. Ansvarig: Nils Anders Danielsson. Nås på 0700 620 602 eller anknytning 1680. Besöker tentamenssalarna ca 15:00 och ca
Läs merTDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 3 Jonas Lindgren, Institutionen för Datavetenskap, LiU
TDDC30 Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 3 Jonas Lindgren, Institutionen för Datavetenskap, LiU På denna föreläsning: Abstrakta datatyper Listor Stackar
Läs merORDINARIE TENTAMEN I DATASTRUKTURER OCH ALGORITMER DVG B kl. 08:15 13:15
ORDINARIE TENTAMEN I DATASTRUKTURER OCH ALGORITMER DVG B03 150112 kl. 08:15 13:15 Ansvarig Lärare: Donald F. Ross Hjälpmedel: Inga. Algoritmerna finns i de respektive uppgifterna eller i bilogarna. ***
Läs merFöreläsning 6. Rekursion och backtracking
Föreläsning 6 Rekursion och backtracking Föreläsning 6 Bredden först med hjälp av kö Lista rekursivt Tornet i Hanoi Backtracking Läsanvisningar och uppgifter Hissen i lustiga huset Huset har n antal våningar
Läs merDatastrukturer i kursen. Föreläsning 8 Innehåll. Träd rekursiv definition. Träd
Föreläsning 8 Innehåll Datastrukturer i kursen Träd, speciellt binära träd egenskaper användningsområden implementering Undervisningsmoment: föreläsning 8, övningsuppgifter 8, lab 4 Avsnitt i läroboken:
Läs merTentamen i Objektorienterad modellering och design Helsingborg
Lunds Tekniska Högskola Datavetenskap Emelie Engström Tentamen EDAF25 2016 10-26, 08:00 13:00 Tentamen i Objektorienterad modellering och design Helsingborg Tentamen består av en teoridel om totalt 5 poäng
Läs merADT Kö. Seminarium 4 Köer och Stackar Innehåll. Operationer. ADT Stack. Definition. Definition
Seminarium 4 Köer och Stackar Innehåll ADT:erna Kö och Stack Definitioner Operationer Exempel på användning Givna klasser i Java Interfacet Queue Klassen Stack Klassen LinkedList Klassen PriorityQueue
Läs merNågra svar till TDDC70/91 Datastrukturer och algoritmer
Några svar till TDDC70/91 Datastrukturer och algoritmer 2011--18 Följande är lösningsskisser och svar till uppgifterna på tentan. Lösningarna som ges här ska bara ses som vägledning och är oftast inte
Läs merDatastrukturer. föreläsning 8. Maps 1
Datastrukturer föreläsning 8 Maps 1 Att hitta den kortaste vägen 0 8 A 4 2 8 B 7 2 C 1 D 2 5 3 9 8 E F 5 3 Lecture 6 2 Viktade grafer I en viktad graf tillordnar vi ett tal till varje båge. Detta tal kallas
Läs merTräd, binära träd och sökträd. Koffman & Wolfgang kapitel 6, avsnitt 1 4
Träd, binära träd och sökträd Koffman & Wolfgang kapitel 6, avsnitt 1 4 1 Träd Träd är ickelinjära och hierarkiska: i motsats till listor och fält en trädnod kan ha flera efterföljare ( barn ) men bara
Läs merLösningsförslag till tentamen Datastrukturer, DAT037 (DAT036), Tiden det tar att utföra en iteration av loopen är oberoende av värdet på
Lösningsförslag till tentamen Datastrukturer, DAT037 (DAT036), 2017-01-11 1. Loopen upprepas n gånger. getat på en dynamisk array tar tiden O(1). member på ett AVL-träd av storlek n tar tiden O(log n).
Läs merFöreläsning 3 Datastrukturer (DAT037)
Föreläsning 3 Datastrukturer (DAT037) Fredrik Lindblad 1 2016-11-07 1 Slides skapade av Nils Anders Danielsson har använts som utgångspunkt Se http://wwwcsechalmersse/edu/year/2015/course/dat037 Förra
Läs merFöreläsning 13 Datastrukturer (DAT037)
Föreläsning 13 Datastrukturer (DAT037) Fredrik Lindblad 1 2016-12-14 1 Slides skapade av Nils Anders Danielsson har använts som utgångspunkt. Se http://www.cse.chalmers.se/edu/year/2015/course/dat037 Sammanfattning
Läs merDatastrukturer. föreläsning 8. Lecture 6 1
atastrukturer föreläsning 8 Lecture 6 1 jupet-först sökning (S) och bredden-först sökning (S) Två metoder att genomsöka en graf; två grafiteratorer! Kan även användas för att avgöra om två noder är sammanbundna.
Läs merLösningar Datastrukturer TDA
Lösningar Datastrukturer TDA416 2016 12 21 roblem 1. roblem 2. a) Falskt. Urvalssortering gör alltid samma mängd av jobb. b) Sant. Genom att ha en referens till sista och första elementet, kan man nå både
Läs merTENTAMEN: Algoritmer och datastrukturer. Läs detta!
1 (6) TENTAMEN: Algoritmer och datastrukturer Läs detta! Uppgifterna är inte avsiktligt ordnade efter svårighetsgrad. Börja varje uppgift på ett nytt blad. Skriv ditt idnummer på varje blad (så att vi
Läs merFöreläsning Datastrukturer (DAT037)
Föreläsning Datastrukturer (DAT037) Nils Anders Danielsson 2015-12-14 Idag Frågor? Är något oklart inför tentan? Sammanfattning Exempel från föreläsning 1 Dåligt val av datastruktur public class Bits {
Läs merFredag 10 juni 2016 kl 8 12
KTH CSC, Alexander Baltatzis DD1320/1321 Lösningsförslag Fredag 10 juni 2016 kl 8 12 Hjälpmedel: En algoritmbok (ej pythonkramaren) och ditt eget formelblad. För betyg E krävs att alla E-uppgifter är godkända,
Läs merLösningsförslag till tentamen
till tentamen 1 (5) Kursnamn Algoritmer och datastrukturer Tentamensdatum Program DAI2+I2 Läsår 201/201, lp 4 Examinator Uno Holmer Uppgift 1 (10 p) Ingen lösning ges. Se kurslitteraturen. Uppgift 2 (
Läs merTentamen Datastrukturer D DAT 036/DIT960
Tentamen Datastrukturer D DAT 036/DIT960 17 december 2010 Tid: 8.30-12.30 Ansvarig: Peter Dybjer, tel 0736-341480 eller ankn 1035 Max poäng på tentamen: 60. Betygsgränser, CTH: 3 = 24 p, 4 = 36 p, 5 =
Läs merEtt generellt träd är. Antingen det tomma trädet, eller en rekursiv struktur: rot /. \ /... \ t1... tn
Träd allmänt Träd allmänt Ett generellt träd är Antingen det tomma trädet, eller en rekursiv struktur: rot /. \ /... \ t1... tn där t1,..., tn i sin tur är träd och kallas subträd, vars rotnoder kallas
Läs merADS : STACK ADT: STACK. Stack och Kö -Implementering - Tilllämpningar. Oftast förekommande metoder i Stack. TopOfStack
Stack och Kö -Implementering - Tilllämpningar ADS : STACK Det finns ett par vanligt förekommande ADT:er för samlingar av element som egentligen är specialfall av listor. En av dem är Stack Definition:
Läs merTentamen TEN1 HI
Tentamen TEN1 HI1029 2014-03-14 Skrivtid: 8.15-13.00 Hjälpmedel: Referensblad (utdelas), papper (tomma), penna Logga in med tentamenskontot ni får av skrivvakten. Det kommer att ta tid att logga in ha
Läs merTildatenta Lösningsskiss
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
Läs merFöreläsning 7. Träd och binära sökträd
Föreläsning 7 Träd och binära sökträd Föreläsning 7 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 Det är extra mycket
Läs merFöreläsning 11. ADT:er och datastrukturer
Föreläsning 11 ADT:er och datastrukturer ADT:er och datastrukturer Dessa två begrepp är kopplade till varandra men de står för olika saker. En ADT (abstrakt datatyp) är just abstrakt och är inte kopplad
Läs merLänkade strukturer. (del 2)
Länkade strukturer (del 2) Översikt Abstraktion Dataabstraktion Inkapsling Gränssnitt (Interface) Abstrakta datatyper (ADT) Programmering tillämpningar och datastrukturer 2 Abstraktion Procedurell abstraktion
Läs merUpplä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)
Binära träd Algoritmer och Datastrukturer Markus Saers markus.saers@lingfil.uu.se Upplägg Binära träd (9) Binära sökträd (0.) Träd Många botaniska termer Träd, rot, löv, gren, Trädets rot kan ha ett antal
Läs merORDINARIE TENTAMEN I DATASTRUKTURER OCH ALGORITMER DVG B kl. 08:15 13:15
ORDINARIE TENTAMEN I DATASTRUKTURER OCH ALGORITMER DVG B03 160119 kl. 08:15 13:15 Ansvarig Lärare: Donald F. Ross Hjälpmedel: Inga. Algoritmerna finns i de respektive uppgifterna eller i bilogarna. ***
Läs merTentamen Datastrukturer (DAT036)
Tentamen Datastrukturer (DAT036) Datum och tid för tentamen: 2014-04-25, 14:00 18:00. Författare: Nils Anders Danielsson. Ansvarig: Nils Anders Danielsson. Nås på 0700 620 602 eller anknytning 1680. Besöker
Läs merLösningsförslag för tentamen i Datastrukturer (DAT036) från
Lösningsförslag för tentamen i Datastrukturer (DAT036) från 2011-12-16 Nils Anders Danielsson 1. Låt oss benämna indatalistan strängar. Vi kan börja med att beräkna varje strängs frekvens genom att använda
Läs merFöreläsning 4: Kombinatorisk sökning
DD2458, Problemlösning och programmering under press Föreläsning 4: Kombinatorisk sökning Datum: 2009-09-25 Skribent(er): Kristina Nylander, Dennis Ekblom, Marcus Öman Föreläsare: Fredrik Niemelä 1 Introduktion
Läs merKap.6 Grafer. Egenskaper: Handskakningslemmat och Eulers formel Sats om eulerkrets/väg Isomorfi och representation av grafer Graffärgning
Kap.6 Grafer Allmänna begrepp: graf, delraf, multigraf, enkelgraf, riktad graf, nodsgrad vandring, väg, stig, krets, cykel sammanhängande graf, sammanhängande komponenter Speciella grafer: komplett graf,
Läs merTDDC30 Programmering i Java, Datastrukturer och Algoritmer Lektion 2. Laboration 2 Datastrukturer En liten uppgift Frågor
TDDC30 Programmering i Java, Datastrukturer och Algoritmer Lektion 2 Laboration 2 Datastrukturer En liten uppgift Frågor 1 Laboration 2 - Datastrukturer Länkade datastrukturer Stack Kö (En. Queue) Lista
Läs merFöreläsning 13 Datastrukturer (DAT037)
Föreläsning 13 Datastrukturer (DAT037) Fredrik Lindblad 1 11 december 2017 1 Slides skapade av Nils Anders Danielsson har använts som utgångspunkt. Se http://www.cse.chalmers.se/edu/year/2015/course/dat037
Läs merAlgoritmer och datastrukturer, föreläsning 11
lgoritmer och datastrukturer, föreläsning 11 enna föreläsning behandlar grafer. En graf har en mängd noder (vertex) och en mängd bågar (edge). Ett exempel är: E F G H Z enna graf har följande mängd av
Läs merTentamen Datastrukturer, DAT037 (DAT036)
Tentamen Datastrukturer, DAT037 (DAT036) Datum och tid för tentamen: 2017-01-11, 14:00 18:00. Ansvarig: Fredrik Lindblad. Nås på tel nr. 031-772 2038. Besöker tentamenssalarna ca 15:00 och ca 17:00. Godkända
Läs merIntroduktion till Datalogi DD1339. Föreläsning 1 8 sept 2014
Introduktion till Datalogi DD1339 Föreläsning 1 8 sept 2014 Kontaktuppgifter & Info: Kurskod: DD1339, 19hp Kursomgång: inda14 Kursansvarig: Christian Smith, ccs@kth.se Michael Minock, minock@kth.se Dilian
Läs merTDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 3 Jonas Lindgren, Institutionen för Datavetenskap, LiU
TDDC30 Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 3 Jonas Lindgren, Institutionen för Datavetenskap, LiU På denna föreläsning: Abstrakta datatyper Listor Stackar
Läs merDatastrukturer. föreläsning 9. Maps 1
Datastrukturer föreläsning 9 Maps 1 Grafer och grafalgoritmer Hur implementerar man grafer? Hur genomsöker (traverserar) man grafer? Hur genomsöker man viktade grafer (och hittar kortaste vägen)? Hur beräknar
Läs merFöreläsning 9 Innehåll
Föreläsning 9 Innehåll Binära sökträd algoritmer för sökning, insättning och borttagning, implementering effektivitet balanserade binära sökträd, AVL-träd Abstrakta datatyperna mängd (eng. Set) och lexikon
Läs merVad handlar kursen om? Algoritmer och datastrukturer. Vad handlar kursen om? Vad handlar kursen om?
Algoritmer och datastrukturer Allmänt om kursen Kort javagrund repetition - Klasser, metoder, objekt och referensvariabler, - Hierarkiska klass strukturer - Arrayer och arrayer av objekt - Collection ramverket
Läs merF12 - Collections. ID1004 Objektorienterad programmering Fredrik Kilander
F12 - Collections ID1004 Objektorienterad programmering Fredrik Kilander fki@kth.se Collections (samlingar) En collection är ett objekt som fungerar som en samling av andra objekt En collection erbjuder
Läs merTentamen'('Datastrukturer,'algoritmer'och'programkonstruktion.'
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
Läs merTentamen i Algoritmer & Datastrukturer i Java
Tentamen i Algoritmer & Datastrukturer i Java Hjälpmedel: Skrivhjälpmedel, miniräknare. Ort / Datum: Halmstad / 2010-03-16 Skrivtid: 4 timmar Kontaktperson: Nicolina Månsson Poäng / Betyg: Max 44 poäng
Läs merDatastrukturer. föreläsning 3. Stacks 1
Datastrukturer föreläsning 3 Stacks 1 Abstrakta datatyper Stackar - stacks Köer - queues Dubbeländade köer - deques Vektorer vectors (array lists) All är listor men ger tillgång till olika operationer
Läs merTentamen Datastrukturer (DAT036)
Tentamen Datastrukturer (DAT036) Det här är inte originaltesen. Uppgift 6 var felaktigt formulerad, och har rättats till. Datum och tid för tentamen: 2011-12-16, 8:30 12:30. Ansvarig: Nils Anders Danielsson.
Läs merObjektorienterad programmering E. Back to Basics. En annan version av printtable. Ett enkelt exempel. Föreläsning 10
Objektorienterad programmering E Föreläsning 10 Rekursion Länkade datastrukturer Back to Basics Exekvera programmet för hand! public class Param { public static int f(int x) { return x+1; public static
Läs merHitta k största bland n element. Föreläsning 13 Innehåll. Histogramproblemet
Föreläsning 13 Innehåll Algoritm 1: Sortera Exempel på problem där materialet i kursen används Histogramproblemet Schemaläggning Abstrakta datatyper Datastrukturer Att jämföra objekt Om tentamen Skriftlig
Läs mer