Datastrukturer. föreläsning 10. Maps 1

Storlek: px
Starta visningen från sidan:

Download "Datastrukturer. föreläsning 10. Maps 1"

Transkript

1 Datastrukturer föreläsning 10 Maps 1

2 Minsta uppspännande träd Maps 2

3 Minsta uppspännande träd Uppspännande träd till graf fritt delträd innehåller alla noderna Minsta uppspännande träd (MST) är det uppspännande träd som har minst totalvikt (summera bågarnas vikter) Tillämpningar Kommunikationsnätverk Transportnätverk DEN 4 DFW ORD 6 STL ATL PIT DCA 2 7 Maps 3

4 Kruskals algoritm för MST De snåla kommunalpolitikernas algoritm för att asfaltera vägar i kommunen! 1 ORD 10 PIT DEN STL 3 7 DCA DFW ATL Maps 4

5 Kruskals algoritm för MST De snåla kommunalpolitikernas algoritm för att asfaltera vägar i kommunen! 1. Asfaltera den kortaste vägen i kommunen 2. Asfaltera den näst kortaste vägen i kommunen, osv 3. Asfaltera dock aldrig någon väg mellan två noder som redan är förbundna med asfalterade vägar DEN 4 DFW ORD STL 10 ATL PIT Maps DCA 2 7

6 Hur implementerar man Kruskals algoritm? Gör en prioritetskö av alla bågar viktordning. O(m log m) Konstruera en skog F av fria träd. Från början innehåller varje träd bara en nod. Till slut innehåller F hela mst. Välj minsta bågen i prioritetskön. Om den går mellan olika komponenter i F, slå samman dessa komponenter via bågen. (Detta görs med en algoritm som kallas union-find.) O(m log n). 6

7 Binära sökträd < 6 2 > = Maps 7

8 Implementeringsmetoder för binära träd - repetition Maps 8

9 Enkellänkade binära träd En nod innehåller Pekare till element (elementet självt om primitiv typ) Pekare till vänster barn Pekare till höger barn A B D C E Maps 9

10 Att lagra binära träd i fält exempel 2 Ett binärt träd 5 6 Samma träd lagrat i ett fält Maps 10

11 Att lagra binära träd i fält - exempel 0 Ett binärt träd 1 2 Samma träd lagrat i ett fält Maps 11

12 Att lagra binära träd i fält allmän princip Roten lagras i cell 0 Om en viss nod lagras i cell i så lagras - vänster barn i cell 2i höger barn i cell 2i + 2 (Obs. G&T lägger roten i 1 och barnen i 2i och 2i + 1) Ett binärt träd är fullständigt om dess n noder lagras i cellerna 0,, n-1. Om fullständiga binära träd lagras i fält har inga tomma mellanrum! Obs. Om våra träd växer kan vi behöva dynamiska (utvidgbara) fält! Maps 12

13 Varför binära sökträd? Binärsökning i sorterat fält: - snabb uppslagning (O(log n)) men - långsam insättning och borttagning (O(n)) Binärt sökträd: - snabb uppslagning, insättning och borttagning om trädet är balanserat (O(log n)) Maps 13

14 Vad är ett binärt sökträd? Definition Binära träd som lagrar nycklar (och evt element) och har sökträdsegenskapen: Låt v vara trädets rot och u och w vara vänster resp höger barn. Då gäller key(u) < key(v) < key(w) Vänster och höger delträd är också binära sökträd. Alltså gäller att alla nycklar i vänster delträd är mindre än rotens nyckel, och alla i höger delträd är större än rotens nyckel. (Vi förutsätter här att vi lagrar avbildningar, dvs inga dublettnycklar.) Maps 14

15 Sökning Algorithm findelement(k, o) if o = null return NO_SUCH_KEY if k = key(o) return element(o) else if k < key(o) return findelement(k, o.left) else if k > key(o) return findelement(k, o.right) Maps 15

16 findelem i Haskell BinTree a = Empty Node a (BinTree a) (BinTree a) findelem :: Ord k => k -> BinTree (k,v) -> Maybe v findelem k Empty = Nothing findelem k (Node (k,v) left right) k == k = Just v k < k = findelem k left k > k = findelem k right Maps 16

17 Insättning Operationen insertitem(k,v) sätter in ett nytt par (k,v) på rätt plats Exempel: sätt in ett nytt par med nyckel < > > Maps 17

18 Borttagning: fall 0 och 1 barn Operationen removeelement(k) söker efter nyckeln k och om den finner den tar bort motsvarande nod v Fall 0: om v saknar barn är vi klara. Fall 1: om v har precis ett barn flyttar vi upp delträdet, se fig: ta bort nyckeln > < v Maps 18

19 Borttagning: fall 2 barn 1 Om noden v som ska tas bort har två barn: Leta upp noden w som kommer efter v i inordning (dvs har närmast större nyckel i sökträdet). w måste vara ett löv. (Det går förstås också bra med närmast mindre nyckel.) Ersätt v med w! Exempel: ta bort 3! w 5 v w Maps 19

20 Tidskomplexitet värsta fallet Antag att det binära sökträdet har n noder och höjden h Utrymmet är O(n) findelement, insertitem och removeelement är O(h) Höjden h är O(n) i värsta fall O(log n) i bästa fall bästa fallet Maps 20

21 AVL-träd Maps 21

22 AVL-träd AVL-träd är balanserade BST: för alla noder gäller det att höjdskillnaden mellan vänster och höger delträd 0 är högst 1 Sökning fungerar som i vanliga binära sökträd. Insättning och borttagning fungerar också som vanligt, men obalans kan uppstå, så vi måste eventuellt balansera om trädet. 1 2 Maps

23 Insättning i AVL-träd obalans Sätt först in det nya elementet på samma sätt som i ett vanligt BST! lokal obalans Det nya trädet kan bli obalanserat Balansera om trädet! 1 ny nod lokal obalans Exempel: vi har satt in en ny nod med nyckel 7: Maps 23

24 Enkelrotation: princip nederst lokal obalans alltför djup nod balansen återställ d Maps 24

25 Enkelrotation: exempel 5 obalans alltför djup nod Balansen återställd Maps 25

26 Dubbelrotation: princip nederst lokal obalans alltför djup nod balansen återställd Maps 26

27 Dubbelrotation: exempel 5 obalans alltför djup nod balansen återställd Maps 27

28 Trenodsomstrukturering Enkel och dubbelrotationer kallas med ett gemensamt namn trenodsomstruktueringar. Vi letar upp tre noder: den nedersta noden med lokal obalans samt dess barn och barnbarn så att barnet och barnbarnet tillhör delträd som har blivit alltför djupa. Dessa tre noder bestämmer fyra delträd. Vid enkelrotation gör man barnet till ny förälder med den gamla föräldern och barnbarnet som nya barn. Vid dubbelrotation gör man barnbarnet till ny förälder med gamla föräldern och barnet som nya barn. Maps 28

29 Borttagning i AVL-träd Borttagning: som i binära sökträd Om obalans uppkommer omstrukturera med rotationer! Omstrukturering i delträd kan ge upphov till obalans högre upp vi kan behöva omstrukturera flera gånger Jfr: insättning räcker att omstrukturera en gång (kring nedersta obalanserade noden)! Maps 29

30 Splayträd Binärt sökträd Behöver ej vara balanserade som AVLträd Nycklar som man ofta letar efter skall ligga högt upp i trädet regeln: 90% av sökningar är efter 10% av nycklarna Maps 30

31 Splayträd Insättning, sökning och borttagning som i vanligt binärt sökträd, följda av en splay, dvs man omstrukturerar trädet så att den sist besökta nyckeln placeras i roten. Den amorterade kostnaden är O(log n). Ingen ombalansering som i AVL-träd (eller som i (2,4)-träd eller ommålning som i rödsvarta träd, mer senare). Maps 31

32 Zig-zig Maps 32

33 Zig-zag (jfr dubbelrotation) Maps 33

34 Zig Maps 34

35 Exempel: sätt in Maps 35

36 Exempel: sätt in 11 zig zag Maps 36

37 Exempel: sätt in 11 zig zig Maps 37

38 (2,4)-träd Maps 38

39 Ett (2,4)-träd till Maps 39

40 (2,4)-träd Varje nod lagrar 1-3 nycklar (+ värden) En inre nod som lagrar n nycklar har n+1 barn Alla löv ligger på samma djup (ett exakt balanserat träd)! Sökträdsegenskapen gäller: de n nycklarna i en nod separerar nycklarna i de n+1 delträden (se nästa bild, boken ger den allmänna egenskapen) Maps 40

41 (2,4)-träd har sökträdsegenskap 2, 8 är mindre än ligger mellan 10 och ligger mellan 15 och 24 27, 32 är större än Maps 41

42 Sökning i (2,4)-träd Exempel: sök efter 30! saknas Maps 42

43 Insättning Kan ge upphov till overflow. Vi måste då splittra en nod (se boken) Exempel: insättning av 30 orsakar overflow nedan: v Sätt in Maps 43 v overflow

44 Röd-svarta träd v z Maps 44

45 Rödsvarta träd: binära sökträd som representerar (2,4)-träd Ett röd-svart träd är ett binärt sökträd vars noder är färgade röda eller svarta Så här gör man om (2,4)-träd till rödsvarta träd: eller Maps 45

46 Röd-svarta träd Roten är svart Barnen till en röd nod är svarta Alla löv har samma svart-djup, dvs samma antal svarta förfäder (inklusive lövet självt). Detta motsvarar balanseringskravet på (2,4)-träd Maps 46

47 Insättning i röd-svarta träd 1. Använd först algoritmen för insättning i binära sökträd! 2. Färga den nya noden röd (undantag: den nya noden är rot)! 3. Vi kan då få en dubbel röd strukturera om eller måla om! dubbel röd ny nod Maps 47

48 Ommålning Poängen med röd-svarta träd är att det är billigare att måla om än att omstrukturera trädet som man gör med (2,4)-träd! (Jfr hur man handskas med overflow i (2,4)- träd.) 9 måla röd måla svart måla svart Maps 48

49 Omstrukturering Gör en enkelrotation (som i AVL-träd) av 6,7, 8! 7 blir svart med de röda barnen 6 och 8. (Jfr sambandet med (2,4)-träd. Vi behöver här bara se till att vi får en korrekt röd-svart representation av en 4-nod!) dubbel röd 7 8 ny nod Maps 49

50 Några effektiva implementeringar av lexika Sökning Insättning Borttagning Kommentar AVL-träd (2,4)-träd O(log n) O(log n) O(log n) -omstruktureringskostnader Skiplistor O(log n) i medeltal O(log n) i medeltal O(log n) i medeltal -slumpmässig algoritm Röd-svarta träd O(log n) O(log n) O(log n) -Ommålning men inte mycket omstrukturering! -TreeMap i Java Maps 50

51 Några effektiva implementeringar av lexika Sökning Insättning Borttagning Kommentar Splayträd O(log n) amorterad O(log n) amorterad O(log n) amorterad -effektivt för vanligaste nycklar B-träd O(log B n) I/O O(log B n) I/O O(log B n) I/O -för stora lexika/databaser Maps 51

52 B-träd för sökning i externminne Om vår datasamling (mängd, lexikon) inte får plats i primärminnet måste vi lagra delar av den på externminne Tiden det tar för sökningar, insättningar och borttagningar beror huvudsakligen på antalet dataöverföringar från externminnet B-träd generaliserar (2,4)-träd, i stället för noder med mellan 2 och 4 barn har det noder med mellan d/2 och d barn. Storleken d kan vara ett block i externminnet. Maps 52

Datastrukturer. föreläsning 9. Maps 1

Datastrukturer. föreläsning 9. Maps 1 Datastrukturer föreläsning 9 Maps 1 Minsta uppspännande träd Maps 2 Minsta uppspännande träd Uppspännande träd till graf fritt delträd innehåller alla noderna Minsta uppspännande träd (MST) är det uppspännande

Läs mer

Datastrukturer. föreläsning 10. Maps 1

Datastrukturer. föreläsning 10. Maps 1 Datastrukturer föreläsning 10 Maps 1 AVL-träd 1 2 5 2 0 4 1 8 3 2 1 11 1 7 Lecture 6 2 Insättning i AVL-träd Sätt först in det nya elementet på samma sätt som i ett vanligt BST! Det nya trädet kan bli

Läs mer

Datastrukturer. föreläsning 9. Maps 1

Datastrukturer. 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 mer

Föreläsning Datastrukturer (DAT036)

Föreläsning Datastrukturer (DAT036) Föreläsning Datastrukturer (DAT036) Nils Anders Danielsson 2013-11-27 Idag Balanserade sökträd Splayträd Skipplistor AVL-träd AVL-träd Sökträd Invariant (för varje nod): Vänster och höger delträd har samma

Läs mer

Föreläsning 9 Datastrukturer (DAT037)

Fö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 mer

Föreläsning Datastrukturer (DAT036)

Fö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 mer

Föreläsning 5 TDDC91,TDDE22,725G97: DALG. Föreläsning i Datastrukturer och algoritmer 18 september 2018

Föreläsning 5 TDDC91,TDDE22,725G97: DALG. Föreläsning i Datastrukturer och algoritmer 18 september 2018 Föreläsning 5 TDDC91,TDDE22,725G97: DALG Föreläsning i Datastrukturer och algoritmer 18 september 2018 Institutionen för datavetenskap Linköpings universitet 5.1 Introduktion find,insert och remove i ett

Läs mer

Tentamen Datastrukturer D DAT 035/INN960

Tentamen Datastrukturer D DAT 035/INN960 Tentamen Datastrukturer D DAT 035/INN960 22 december 2006 Tid: 8.30-12.30 Ansvarig: Peter Dybjer, tel 7721035 eller 405836 Max poäng på tentamen: 60. (Bonuspoäng från övningarna tillkommer.) Betygsgränser,

Läs mer

Självbalanserande AVL-träd Weiss, avsnitt 4.4

Självbalanserande AVL-träd Weiss, avsnitt 4.4 Självbalanserande AVL-träd Weiss, avsnitt 4.4 Peter Ljunglöf DAT036, Datastrukturer 30 nov 2012 1 Balanserade träd Nodbalanserat träd: skillnaden i antalet noder mellan vänster och höger delträd är högst

Läs mer

Datastrukturer. Föreläsning 5. Maps 1

Datastrukturer. Föreläsning 5. Maps 1 Datastrukturer Föreläsning 5 Maps 1 Traversering av träd Maps 2 Preordningstraversering Traversera = genomlöpa alla noderna i ett träd Varje nod besöks innan sina delträd Preordning = djupet först Exempel:

Läs mer

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

Ett 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 mer

Föreläsning 2. AVL-träd, Multi-Way -sökträd, B-träd TDDD71: DALG. Innehåll. Innehåll. 1 Binära sökträd

Föreläsning 2. AVL-träd, Multi-Way -sökträd, B-träd TDDD71: DALG. Innehåll. Innehåll. 1 Binära sökträd Föreläsning AVL-träd, Multi-Wa -sökträd, B-träd DDD7: DALG Utskriftsversion av föreläsning i Datastrukturer och algoritmer november 5 omm Färnqvist, IDA, Linköpings universitet. Innehåll Innehåll Binära

Läs mer

Föreläsning 10 Datastrukturer (DAT037)

Föreläsning 10 Datastrukturer (DAT037) Föreläsning 10 Datastrukturer (DAT037) Fredrik Lindblad 1 29 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 mer

Datastrukturer. föreläsning 6. Maps 1

Datastrukturer. föreläsning 6. Maps 1 Datastrukturer föreläsning 6 Maps 1 Avbildningar och lexika Maps 2 Vad är ett lexikon? Namn Telefonnummer Peter 031-405937 Peter 0736-341482 Paul 031-405937 Paul 0737-305459 Hannah 031-405937 Hannah 0730-732100

Läs mer

Algoritmer och datastrukturer 2012, fo rela sning 8

Algoritmer och datastrukturer 2012, fo rela sning 8 lgoritmer och datastrukturer 01, fo rela sning 8 Komplexitet för binära sökträd De viktigaste operationerna på binära sökträd är insert, find och remove Tiden det tar att utföra en operation bestäms till

Läs mer

Föreläsning 9 Innehåll

Fö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 mer

Lösningar Datastrukturer TDA

Lö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 mer

Ännu mera träd: 2-3-träd, B-träd, rödsvarta träd, träd Weiss, avsnitt 4.7, 11.5, 12.2, etc.

Ännu mera träd: 2-3-träd, B-träd, rödsvarta träd, träd Weiss, avsnitt 4.7, 11.5, 12.2, etc. Ännu mera träd: 2-3-träd, B-träd, rödsvarta träd, 2-3-4-träd Weiss, avsnitt 4.7, 11.5, 12.2, etc. Peter Ljunglöf DAT036, Datastrukturer 30 nov 2012 1 2-3-träd [inte i kursboken] Ett 2-3-träd har två sorters

Läs mer

Föreläsning 6. Sökträd: AVL-träd, Multi-Way -sökträd, B-träd TDDC70/91: DALG. Innehåll. Innehåll. 1 AVL-träd

Föreläsning 6. Sökträd: AVL-träd, Multi-Way -sökträd, B-träd TDDC70/91: DALG. Innehåll. Innehåll. 1 AVL-träd Föreläsning 6 Sökträd: AVL-träd, Multi-Wa -sökträd, B-träd DDC7/9: DALG Utskriftsversion av föreläsning i Datastrukturer och algoritmer september omm Färnqvist, IDA, Linköpings universitet 6. Innehåll

Läs mer

Tentamen Datastrukturer för D2 DAT 035

Tentamen Datastrukturer för D2 DAT 035 Tentamen Datastrukturer för D2 DAT 035 17 december 2005 Tid: 8.30-12.30 Ansvarig: Peter Dybjer, tel 7721035 eller 405836 Max poäng på tentamen: 60. (Bonuspoäng från övningarna tillkommer.) Betygsgränser:

Läs mer

Självbalanserande träd AVL-träd. Koffman & Wolfgang kapitel 9, avsnitt 1 2

Självbalanserande träd AVL-träd. Koffman & Wolfgang kapitel 9, avsnitt 1 2 Självbalanserande träd AVL-träd Koffman & Wolfgang kapitel 9, avsnitt 1 2 1 Balanserade träd Nodbalanserat träd: skillnaden i antalet noder mellan vänster och höger delträd är högst 1 Höjdbalanserat träd:

Läs mer

Föreläsning 4 Datastrukturer (DAT037)

Fö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 mer

Träd Hierarkiska strukturer

Träd Hierarkiska strukturer Träd Hierarkiska strukturer a 1 a 2 a 3 a 4 a 2 a 5 a 6 a 7 Hierarki: Korta vägar till många Hur korta? Linjär lista: n 2 Träd: Antal element på avståndet m: g m a 1 a 3 a 8 a 12 m = log g n a 9 a 10 Väglängden

Läs mer

Lö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), 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 mer

Föreläsning 10 Innehåll. Diskutera. Inordertraversering av binära sökträd. Binära sökträd Definition

Föreläsning 10 Innehåll. Diskutera. Inordertraversering av binära sökträd. Binära sökträd Definition Föreläsning Innehåll Diskutera 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 Jämföra objekt interfacet Comparable Interfacet

Läs mer

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

Tentamen med lösningsförslag Datastrukturer för D2 DAT 035 Tentamen med lösningsförslag Datastrukturer för D2 DAT 035 17 december 2005 Tid: 8.30-12.30 Ansvarig: Peter Dybjer, tel 7721035 eller 405836 Max poäng på tentamen: 60. (Bonuspoäng från övningarna tillkommer.)

Läs mer

Programkonstruktion och. Datastrukturer

Programkonstruktion och. Datastrukturer Programkonstruktion och Datastrukturer Repetitionskurs, sommaren 2011 Datastrukturer (Listor, Träd, Sökträd och AVL-träd) Elias Castegren elias.castegren.7381@student.uu.se Datastrukturer Vad är en datastruktur?

Läs mer

Seminarium 13 Innehåll

Seminarium 13 Innehåll Seminarium 13 Innehåll Prioritetsköer och heapar Prioritetsköer ADTn Klassen PriorityQueue i java.util Implementering med lista Heapar ADTn För implementering av prioritetskö För sortering Efter seminariet

Läs mer

Föreläsning 10 Innehåll

Föreläsning 10 Innehåll Föreläsning 10 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 Jämföra objekt interfacet Comparable Interfacet

Läs mer

Tentamen Datastrukturer D DAT 036/INN960

Tentamen Datastrukturer D DAT 036/INN960 Tentamen Datastrukturer D DAT 036/INN960 18 december 2009 Tid: 8.30-12.30 Ansvarig: Peter Dybjer, tel 7721035 eller 405836 Max poäng på tentamen: 60. Betygsgränser, CTH: 3 = 24 p, 4 = 36 p, 5 = 48 p, GU:

Läs mer

Tentamen Datastrukturer D DAT 036/INN960

Tentamen Datastrukturer D DAT 036/INN960 Tentamen Datastrukturer D DAT 036/INN960 18 december 2009 Tid: 8.30-12.30 Ansvarig: Peter Dybjer, tel 7721035 eller 405836 Max poäng på tentamen: 60. Betygsgränser, CTH: 3 = 24 p, 4 = 36 p, 5 = 48 p, GU:

Läs mer

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

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 Seminarium inära sökträd Innehåll inära sökträd inära sökträd Definition Implementering lgoritmer Sökning Insättning orttagning Effektivitet alanserade binära sökträd Eempel på vad du ska kunna Förklara

Läs mer

Tentamen Datastrukturer (DAT036)

Tentamen 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 mer

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

Föreläsning 10 Innehåll. Prioritetsköer och heapar. ADT Prioritetskö. Interface för Prioritetskö. Exempel på vad du ska kunna Föreläsning Innehåll Prioritetsköer och heapar Prioritetsköer och heapar ADT prioritetskö Klassen PriorityQueue i java.util Implementering med lista ar Implementering av prioritetskö med heap Sortering

Läs mer

Tentamen Datastrukturer (DAT036/DAT037/DIT960)

Tentamen 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 mer

Föreläsning 11 Innehåll. Diskutera. Binära sökträd Definition. Inordertraversering av binära sökträd

Föreläsning 11 Innehåll. Diskutera. Binära sökträd Definition. Inordertraversering av binära sökträd Föreläsning Innehåll Diskutera 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 Jämföra objekt interfacet Comparable Interfacet

Läs mer

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)

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) 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 mer

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

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 Innehåll Föreläsning 12 Sökträd Sökning Sökning och Sökträd 383 384 Binärt sökträd Används för sökning i linjära samlingar av dataobjekt, specifikt för att konstruera tabeller och lexikon. Organisation:

Läs mer

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

ADT Prioritetskö. Föreläsning 12 Innehåll. Prioritetskö. Interface för Prioritetskö. Prioritetsköer och heapar Föreläsning 1 Innehåll Prioritetsköer och heapar Prioritetsköer och heapar ADT prioritetskö Klassen PriorityQueue i java.util Heapar Implementering av prioritetskö med heap Sortering med hjälp av heap

Läs mer

Föreläsning Datastrukturer (DAT036)

Fö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 mer

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

TDDI16 Datastrukturer och algoritmer. Prioritetsköer, heapar, Union/Find TDDI16 Datastrukturer och algoritmer Prioritetsköer, heapar, Union/Find Prioritetsköer En vanligt förekommande situation: Väntelista (jobbhantering på skrivare, simulering av händelser) Om en resurs blir

Läs mer

Föreläsning 4 Datastrukturer (DAT037)

Fö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 mer

TDDC30. 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 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 mer

DAI2 (TIDAL) + I2 (TKIEK)

DAI2 (TIDAL) + I2 (TKIEK) 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

Läs mer

Fö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 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 mer

Föreläsning 9 Innehåll

Fö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 mer

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

ADT Prioritetskö. Föreläsning 13 Innehåll. Prioritetskö vs FIFO-kö. Prioritetskö Exempel på användning. Prioritetsköer och heapar Föreläsning 1 Innehåll ADT Prioritetskö Prioritetsköer och heapar Prioritetsköer och heapar ADT prioritetskö Klassen PriorityQueue i java.util ar Implementering av prioritetskö med heap Sortering med hjälp

Läs mer

Informationsteknologi Tom Smedsaas 19 augusti 2016

Informationsteknologi Tom Smedsaas 19 augusti 2016 Informationsteknologi Tom Smedsaas 19 augusti 016 VL-träd Definition Ett VL-träd är ett binärt sökträd där det för varje nod gäller att skillnaden i höjd mellan nodens vänster och höger subträd är högst

Läs mer

Tabeller. Programkonstruktion. Moment 8 Om abstrakta datatyper och binära sökträd. Implementering av tabellen. Operationer på tabellen

Tabeller. Programkonstruktion. Moment 8 Om abstrakta datatyper och binära sökträd. Implementering av tabellen. Operationer på tabellen Programkonstruktion Moment 8 Om abstrakta datatyper och binära sökträd Tabeller En viktig tillämpning är tabellen att ifrån en nyckel kunna ta fram ett tabellvärde. Ett typiskt exempel är en telefonkatalog:

Läs mer

Datastrukturer och algoritmer

Datastrukturer och algoritmer Datastrukturer och algoritmer Föreläsning 12 2 Innehåll Handledning, labbar, samarbete, etc Sökträd Sökning Delar av kapitel 15.4-15.5 i boken + OHbilderna 3 Handledning/labutlämning Ingen labhandledning

Läs mer

Lösningsförslag till tentamen Datastrukturer, DAT037,

Lösningsförslag till tentamen Datastrukturer, DAT037, Lösningsförslag till tentamen Datastrukturer, DAT037, 2018-04-05 1. q.dequeue() tar O(1) (eventuellt amorterat) s.contains(x) tar O(1) pq.add(x) tar O(log i) I värsta fall exekveras innehållet i if-satsen.

Läs mer

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

Datastrukturer, algoritmer och programkonstruktion (DVA104, HT 2014) Föreläsning 5 Datastrukturer, algoritmer och programkonstruktion (DVA104, HT 2014) Föreläsning 5? FORTSÄTTNING TRÄD RECAP (förra föreläsningen) RECAP (förra föreläsningen) Träd är icke-linjära datastrukturer som ofta

Läs mer

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

Datastrukturer 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 mer

Föreläsning 13 Datastrukturer (DAT037)

Fö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 mer

Programmeringsmetodik DV1 Programkonstruktion 1. Moment 8 Om abstrakta datatyper och binära sökträd

Programmeringsmetodik DV1 Programkonstruktion 1. Moment 8 Om abstrakta datatyper och binära sökträd Programmeringsmetodik DV1 Programkonstruktion 1 Moment 8 Om abstrakta datatyper och binära sökträd PK1&PM1 HT-06 moment 8 Sida 1 Uppdaterad 2005-09-22 Tabeller En viktig tillämpning är tabellen att ifrån

Läs mer

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

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 Föreläsning Innehåll inära sökträd algoritmer för sökning, insättning och borttagning implementering effektivitet alanserade binära sökträd VL-träd Datastrukturer som passar för sökning ntag att vi i ett

Läs mer

Föreläsning 13 Innehåll

Föreläsning 13 Innehåll Föreläsning 13 Innehåll Prioritetsköer och heapar Prioritetsköer och heapar ADT prioritetskö Heapar Implementering av prioritetskö med heap Klassen PriorityQueue i java.util Programexempel LPT-algoritmen

Läs mer

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

Inlä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 mer

TDDC30. 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 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 mer

Föreläsning Datastrukturer (DAT037)

Fö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 mer

Föreläsning Datastrukturer (DAT036)

Föreläsning Datastrukturer (DAT036) Föreläsning Datastrukturer (DAT036) Nils Anders Danielsson 2012-11-05 Repetition Förra gången: Listor, stackar, köer. Länkade listor, pekarjonglering. Idag: Cirkulära arrayer. Dynamiska arrayer. Amorterad

Läs mer

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

Hitta 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

Föreläsning 13 Datastrukturer (DAT037)

Fö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 mer

Föreläsning 7 Datastrukturer (DAT037)

Fö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 mer

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

Datastrukturer som passar för sökning. Föreläsning 11 Innehåll. Binära sökträd Definition. Inordertraversering av binära sökträd Föreläsning Innehåll inära sökträd algoritmer för sökning, insättning och borttagning implementering effektivitet balanserade binära sökträd, VL-träd Jämföra objekt interfacet omparable Interfacet omparator

Läs mer

Föreläsning 8 Datastrukturer (DAT037)

Fö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 mer

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

Prov i DAT 312: Algoritmer och datastrukturer för systemvetare 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

Läs mer

Trädstrukturer och grafer

Trä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 mer

Föreläsning 5 Datastrukturer (DAT037)

Föreläsning 5 Datastrukturer (DAT037) Föreläsning 5 Datastrukturer (DAT037) Nils Anders Danielsson, Fredrik Lindblad 2016-11-14 Förra gången: Cirkulära arrayer Prioritetskö Binära heapar Leftistheapar merge Det verkar inte gå att slå ihop

Läs mer

Tentamen Datastrukturer, DAT037 (DAT036)

Tentamen 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 mer

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

F5: Debriefing OU2, repetition av listor, träd och hashtabeller. Carl Nettelblad F5: Debriefing OU2, repetition av listor, träd och hashtabeller Carl Nettelblad 2017-04-24 Frågor Kommer nog inte att täcka 2 timmar Har ni frågor på OU3, något annat vi har tagit hittills på kursen, listor

Läs mer

Tentamen Datastrukturer D DAT 035/INN960

Tentamen Datastrukturer D DAT 035/INN960 Tentamen Datastrukturer D DAT 035/INN960 21 december 2007 Tid: 8.30-12.30 Ansvarig: Peter Dybjer, tel 7721035 eller 405836 Max poäng på tentamen: 60. (Bonuspoäng från övningarna tillkommer.) Betygsgränser,

Läs mer

Datastrukturer. föreläsning 8. Maps 1

Datastrukturer. 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 mer

Tentamen kl Uppgift 4. Uppgift 5

Tentamen kl Uppgift 4. Uppgift 5 2D344 Grundläggande Datalogi för F Tentamen 2003-03-0 kl 4.00 9.00 Inga hjälpmedel. Endast ett svarsalternativ på varje fråga är korrekt. Felaktigt svar eller felaktigt antal ikryssade svarsalternativ

Läs mer

13 Prioritetsköer, heapar

13 Prioritetsköer, heapar Prioritetsköer, heapar 31 13 Prioritetsköer, heapar U 101. En prioritetskö är en samling element där varje element har en prioritet (som används för att jämföra elementen med). Elementen plockas ut i prioritetsordning

Läs mer

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. 1 (7) 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 mer

Föreläsning Datastrukturer (DAT037)

Fö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 mer

Datastrukturer. föreläsning 3. Stacks 1

Datastrukturer. 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 mer

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

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 Översikt Linjär sökning Sökning Binär sökning Hashtabeller Programmering tillämpningar och datastrukturer 2 Linjär sökning Binärt sökträd Undersök ett element i taget tills du hittar det sökta Komplexitet

Läs mer

Fredag 10 juni 2016 kl 8 12

Fredag 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 mer

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

Föreläsning 5: Giriga algoritmer. Kruskals och Prims algoritmer Föreläsning 5: Giriga algoritmer Kruskals och Prims algoritmer Spännande träd: Om G är en sammanhängande graf så är ett spännande träd ett träd som innehåller alla noder i V (G). Viantarattviharkantvikterw(e)

Läs mer

Tentamen Datastrukturer, DAT037 (DAT036)

Tentamen 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 mer

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

Programmering för Språkteknologer II. Innehåll. Associativa datastrukturer. Associativa datastrukturer. Binär sökning. Programmering för Språkteknologer II Markus Saers markus.saers@lingfil.uu.se Rum -040 stp.lingfil.uu.se/~markuss/ht0/pst Innehåll Associativa datastrukturer Hashtabeller Sökträd Implementationsdetaljer

Läs mer

Föreläsning 3 Datastrukturer (DAT037)

Fö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 mer

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

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 Algoritmer och Datastrukturer Kary FRÄMLING/Göran PULKKIS (v23) Kap. 7, Sid 1 BINÄRA TRÄD Träd används för att representera olika slags hierarkier som ordnats på något sätt. Den mest använda trädstrukturen

Läs mer

Föreläsning 14 Innehåll

Fö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 mer

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

Tentamen Datastrukturer D DAT 035/INN960 (med mycket kortfattade lösningsförslag) Tentamen Datastrukturer D DAT 035/INN960 (med mycket kortfattade lösningsförslag) 21 december 2007 Tid: 8.30-12.30 Ansvarig: Peter Dybjer, tel 7721035 eller 405836 Max poäng på tentamen: 60. (Bonuspoäng

Läs mer

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

Föreläsning 5: Giriga algoritmer. Kruskals och Prims algoritmer Föreläsning 5: Giriga algoritmer Kruskals och Prims algoritmer Spännande träd: Om G är en sammanhängande graf så är ett spännande träd ett träd som innehåller alla noder i V (G). Viantarattviharkantvikterw(e)

Läs mer

Tabeller. Programkonstruktion. Moment 8 Om abstrakta datatyper och binära sökträd. Specifikationer för tabellfunktionerna. Operationer på tabellen

Tabeller. Programkonstruktion. Moment 8 Om abstrakta datatyper och binära sökträd. Specifikationer för tabellfunktionerna. Operationer på tabellen Programkonstruktion Moment 8 Om abstrakta datatyper och binära sökträd Tabeller En viktig tillämpning är tabeller att ifrån en nyckel kunna ta fram ett tabellvärde. Ett typiskt exempel är en telefonkatalog:

Läs mer

TDDC74 Programmering: Abstraktion och modellering Datortenta , kl 14-18

TDDC74 Programmering: Abstraktion och modellering Datortenta , kl 14-18 TDDC74 Programmering: Abstraktion och modellering Datortenta - 017-10-7, kl 14-18 Läs alla frågorna först och bestäm dig för i vilken ordning du vill lösa uppgifterna. Uppgifterna är inte nödvändigtvis

Läs mer

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

Datastrukturer och algoritmer. Innehåll. Tabell. Tabell - exempel. Gränsyta till Tabell. Tabell. Modell. Hashtabell Relation, lexikon. Datastrukturer och algoritmer Föreläsning 7 Tabell, hashtabell Relation & lexikon Innehåll Tabell Tabell Hashtabell Relation, lexikon Modell Uppslagsbok Organisation Ändlig avbildning av argument på värden

Läs mer

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

Tommy Färnqvist, IDA, Linköpings universitet. 1 ADT Map/Dictionary 1 1.1 Definitioner... 1 1.2 Implementation... 2 Föreläsning 4 ADT Map/Dictionary, hashtabeller, skip-listor TDDC91: DALG Utskriftsversion av föreläsning i Datastrukturer och algoritmer 9 september 2015 Tommy Färnqvist, IDA, Linköpings universitet 4.1

Läs mer

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

Lö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 mer

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. 1 (8) TENTMEN: lgoritmer och datastrukturer Läs detta! Uppgifterna är inte avsiktligt ordnade efter svårighetsgrad. örja varje uppgift på ett nytt blad. Skriv inga lösningar i tesen. Skriv ditt idnummer

Läs mer

Tentamen Datastrukturer (DAT036)

Tentamen 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 mer

Lösningsförslag till tentamen Datastrukturer, DAT037,

Lösningsförslag till tentamen Datastrukturer, DAT037, Lösningsförslag till tentamen Datastrukturer, DAT037, 2018-01-10 1. Båda looparna upprepas n gånger. s.pop() tar O(1), eventuellt amorterat. t.add() tar O(log i) för i:te iterationen av första loopen.

Läs mer

Tentamen Datastrukturer (DAT036)

Tentamen Datastrukturer (DAT036) Tentamen Datastrukturer (DAT036) Datum och tid för tentamen: 2012-08-24, 8:30 12:30. Ansvarig: Nils Anders Danielsson. Nås på 0700 620 602 eller anknytning 1680. Besöker tentamenssalarna ca 9:30 och ca

Läs mer

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

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 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 Terminologi - träd Ett träd i datalogi består av en rotnod

Läs mer

Exempeltenta GruDat 2002/2003

Exempeltenta 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 mer