Datastructuren; (Zoek)bomen

Save this PDF as:
 WORD  PNG  TXT  JPG

Maat: px
Weergave met pagina beginnen:

Download "Datastructuren; (Zoek)bomen"

Transcriptie

1 Datastructuren; (Zoek)bomen Bomen, zoekbomen, gebalanceerde zoekbomen José Lagerberg FNWI, UvA José Lagerberg (FNWI, UvA) Datastructuren; (Zoek)bomen 1 / 50

2 Bomen Traversal van bomen Datastructuur van bomen Binaire zoekbomen Operaties op binaire zoekbomen Gebalanceerde zoekbomen José Lagerberg (FNWI, UvA) Datastructuren; (Zoek)bomen 2 / 50

3 Bomen Boom is hiërarchische datastructuur Toegang tot tree bij root knoop Elke knoop is of blad (externe knoop) of interne knoop Interne knoop heeft één of meer kindknopen en heet parent Geordende boom heeft eerste kind, tweede kind, derde kind, etc. José Lagerberg (FNWI, UvA) Datastructuren; (Zoek)bomen 3 / 50

4 Boom-Terminologie Een boom bestaat uit verzameling knopen en verzameling randen Een boom heeft eigenschap dat er één pad is tussen twee knopen Een pad is verbonden rij van randen Een rooted tree bevat speciale knoop: de wortel Elke knoop c, behalve de wortel, heeft precies één parent knoop p, dat is de eerste knoop die je tegen komt op het pad van c naar wortel c is kind van p Een knoop kan willekeurig aantal kinderen hebben José Lagerberg (FNWI, UvA) Datastructuren; (Zoek)bomen 4 / 50

5 Definities Een blad heeft geen kinderen Siblings zijn knopen met dezelfde parent Voorouders van knoop d zijn knopen vanaf d naar wortel Als a een voorouder van d, dan is d nakomeling van a De lengte van pad is aantal randen in pad De diepte van knoop n is lengte van pad van n naar wortel (De diepte van wortel is nul) De hoogte van knoop is lengte van pad van n naar diepste nakomeling (De hoogte van blad is nul) De hoogte van boom is de hoogte van de wortel José Lagerberg (FNWI, UvA) Datastructuren; (Zoek)bomen 5 / 50

6 Boom-Terminologie wortel (T) = A interne knopen (T) = {A,B,C,F} bladeren (T) = {E,I,J,K,G,H,D} voorouders (F) = {A,B} diepte (K) = #voorouders(k) = 3 hoogte (T) = max{diepte(k) k T} nakomelingen; subboom;... José Lagerberg (FNWI, UvA) Datastructuren; (Zoek)bomen 6 / 50

7 Toepassing van bomen is structuur van directory In meeste besturingssystemen files hierarchisch opgeslagen in directories Structuur zichtbaar gemaakt met boom José Lagerberg (FNWI, UvA) Datastructuren; (Zoek)bomen 7 / 50

8 Linux commando tree % tree. -- homeworks -- h1nc.doc -- hc1.doc -- programs -- DDR.java -- Robot.java -- Stocks.java -- todo.txt 2 directories, 6 files José Lagerberg (FNWI, UvA) Datastructuren; (Zoek)bomen 8 / 50

9 Boom ADT Boom ADT: data zijn objecten positions in boom zijn de knopen met parent-child relatie generieke methoden: integer size() boolean isempty() objectiterator elements() positioniterator positions() accessor operaties: position root() position parent(p) positioniterator children(p) José Lagerberg (FNWI, UvA) Datastructuren; (Zoek)bomen 9 / 50

10 Boom ADT (vervolg): query methoden: boolean isinternal(p) boolean isexternal(p) boolean isroot(p) update methode: swapelements(p, q) object replace(p, o) José Lagerberg (FNWI, UvA) Datastructuren; (Zoek)bomen 10 / 50

11 Boom traversal Een van belangrijkste operaties op boom is traversal: door alle knopen van de boom heen lopen en elke knoop bezoeken voor lijsten is traversal het doorlopen van de lijst van eerste tot laatste knoop voor bomen zijn er veel manieren om erdoor heen te lopen José Lagerberg (FNWI, UvA) Datastructuren; (Zoek)bomen 11 / 50

12 Preorder traversal: elke parent systematisch bezocht vóór kindknopen Algorithm preorder(p) visit(p) for each child q of p preorder(q) preorder(root()): O(n) (n aantal knopen) Toepassing: afdrukken document of directory structuur José Lagerberg (FNWI, UvA) Datastructuren; (Zoek)bomen 12 / 50

13 Postorder traversal: elke parent systematisch bezocht na kindknopen Algorithm postorder(p) for each child q of p postorder(q) visit(p) postorder(root()): O(n) (n aantal knopen) Toepassing: berekenen disk usage file system José Lagerberg (FNWI, UvA) Datastructuren; (Zoek)bomen 13 / 50

14 Binaire Bomen Een boom is ordered als de kinderen van iedere knoop geordend zijn Een binaire boom is geordende boom met elke knoop hoogstens 2 kinderen Een binaire boom is proper als elke interne knoop precies 2 kinderen heeft José Lagerberg (FNWI, UvA) Datastructuren; (Zoek)bomen 14 / 50

15 Toepassing: Expression tree (2 (a 1) + (3 b)) interne knopen zijn operatoren en bladeren zijn operanden als knoop extern, dan is zijn waarde een variabele of constante als knoop intern, dan is zijn waarde gedefinieerd door operatie op kinderen haakjes niet nodig, boomstructuur geeft volgorde operaties aan José Lagerberg (FNWI, UvA) Datastructuren; (Zoek)bomen 15 / 50

16 Toepassing van Binaire Bomen: Beslisboom interne knopen: vragen bladeren: beslissingen José Lagerberg (FNWI, UvA) Datastructuren; (Zoek)bomen 16 / 50

17 Binaire boom ADT Binaire boom ADT: Boom ADT + position leftchild(p) position rightchild(p) position sibling(p) José Lagerberg (FNWI, UvA) Datastructuren; (Zoek)bomen 17 / 50

18 Inorder traversal van Binaire Bomen Inorder traversal van binaire boom: Algorithm InOrder(p) if isinternal(p) inorder(leftchild(p)) visit(p) if isinternal(p) inorder(rightchild(p)) inorder(root()): O(n) (n aantal knopen) José Lagerberg (FNWI, UvA) Datastructuren; (Zoek)bomen 18 / 50

19 Inorder traversal: infix expressie Afdrukken van aritmetische expressies Algorithm printexpression(p) if isinternal(p) print("(") printexpression(leftchild(p)) print(p.element()) if isinternal(p) printexpression(rightchild(p)) print(")") Infix expressie ((2 (a 1)) + (3 b)) José Lagerberg (FNWI, UvA) Datastructuren; (Zoek)bomen 19 / 50

20 Postorder traversal: postfix expressie Postfix expressie (RPN) José Lagerberg (FNWI, UvA) Datastructuren; (Zoek)bomen 20 / 50

21 Recursieve traversal algoritmen Algorithm traverse(t) if (T is not empty) { // preorder visit traverse(left subtree of T) // inorder visit traverse(right subtree of T) // postorder visit } José Lagerberg (FNWI, UvA) Datastructuren; (Zoek)bomen 21 / 50

22 Samenvatting traversal algoritmen Preorder, inorder en postorder traversals van expression tree: prefix, infix of postfix expressies, resp. + / \ P r e o r d e r : ˆ 4 2 / \ ˆ I n o r d e r : ˆ 2 ( I n f i x ) / \ / \ P o s t o r d e r : ˆ + (RPN) José Lagerberg (FNWI, UvA) Datastructuren; (Zoek)bomen 22 / 50

23 Linked datastructuur voor binaire bomen: José Lagerberg (FNWI, UvA) Datastructuren; (Zoek)bomen 23 / 50

24 Implementatie in Java p u b l i c c l a s s B i n a r y T r e e { TreeNode r o o t ; i n t s i z e ; p u b l i c B i n a r y T r e e ( ) { }... } c l a s s TreeNode { Object element ; TreeNode parent, l e f t, r i g h t ; } p u b l i c TreeNode ( Object o ) { element = o ; } José Lagerberg (FNWI, UvA) Datastructuren; (Zoek)bomen 24 / 50

25 Datastructuur voor willekeurige bomen: José Lagerberg (FNWI, UvA) Datastructuren; (Zoek)bomen 25 / 50

26 Big-Oh s: Operatie size, isempty positions, elements replace root, parent, children leftchild, rightchild isinternal, isexternal, isroot Tijd O(1) O(n) O(1) O(1) O(1) O(1) José Lagerberg (FNWI, UvA) Datastructuren; (Zoek)bomen 26 / 50

27 Dictionary ADT Dictionary is een geordende of niet-geordende verzameling van paren (key, value), waarbij keys gebruikt worden om value te benaderen (woord, definitie) (studentid, studentgegevens) (vluchtnummer, vluchtinformatie) Gegevens toegankelijk via key: Object f i n d E l e m e n t ( key k ) // a l s n i e t gevonden NO SUCH KEY void i n s e r t I t e m ( key k, Object o ) Object removeelement ( key k ) José Lagerberg (FNWI, UvA) Datastructuren; (Zoek)bomen 27 / 50

28 Binaire zoekboom Binaire zoekboom is binaire boom met volgende eigenschappen: bladeren zijn leeg; iedere interne knoop bevat paar (k, e) binary-search-tree-property voor elke interne knoop geldt dat ieder knoop in linker subboom heeft kleinere key ieder knoop in rechter subboom heeft grotere key Merk op: inorder traversal van binaire zoekboom bezoekt elementen in oplopende volgorde! José Lagerberg (FNWI, UvA) Datastructuren; (Zoek)bomen 28 / 50

29 Binaire zoekboom Belangrijkste voordeel van binary search trees: veel operaties efficiënt zoeken findelement(k, p) insert insertelement(k) creëert nieuwe knoop op plaats van nietgevonden zoekopdracht Operatie removeelement(k) is ingewikkeld: 1 kan delen van boom los maken 2 weer vast maken zo dat binary search tree eigenschap behouden 3 mag boom niet onnodig diep maken José Lagerberg (FNWI, UvA) Datastructuren; (Zoek)bomen 29 / 50

30 Zoeken naar sleutel Sleutel k zoeken, loop vanaf root naar beneden Volgende knoop wordt bepaald door uitkomst van vergelijking van k met sleutel van huidige knoop Als blad bereikt, sleutel niet gevonden Voorbeeld: findelement(4) José Lagerberg (FNWI, UvA) Datastructuren; (Zoek)bomen 30 / 50

31 Recursief binair zoeken Algorithm findelement(k, p) if isexternal(p) return NO SUCH ELEMENT if k < p.element() return findelement(k, leftchild(p)) else if k = p.element() return p else return findelement(k, rightchild(p)) findelement(k,root()): O(h) (h hoogte van T) José Lagerberg (FNWI, UvA) Datastructuren; (Zoek)bomen 31 / 50

32 Niet-recursief binair zoeken Algorithm findelement(k, p) while! isexternal(p) en k!= p.element() do if k < p.element() then p = leftchild(p) else p = rightchild(p) return p José Lagerberg (FNWI, UvA) Datastructuren; (Zoek)bomen 32 / 50

33 binary-search-tree-property garandeert dat: 1 minimum sleutel in meest linkse knoop 2 maximum sleutel in meest rechtse knoop Algorithm minimumtree(p) while leftchild(p)!= null then p = leftchild(p) return p José Lagerberg (FNWI, UvA) Datastructuren; (Zoek)bomen 33 / 50

34 Successor van knoop (inorder) Successor van knoop p is knoop met kleinste sleutel > sleutel van p 1 Als knoop p een niet-lege rechter subboom heeft, dan is successor(p) minimum van rechtersubboom 2 Als knoop p een lege rechter subboom heeft, dan als omhoog is naar rechts, dan successor(p) is parent als omhoog is naar links, dan successor(p) vinden we door omhoog te bewegen tot naar rechts, dan successor(p) is laatste knoop bereikt José Lagerberg (FNWI, UvA) Datastructuren; (Zoek)bomen 34 / 50

35 Insertion (at bottom) Om operatie insertelement(k, p) uit te voeren, zoeken we sleutel k Neem aan dat k niet in boom, en stel w is blad bereikt met zoeken Insert k op knoop w en breid w uit tot interne knoop Voorbeeld: insert 5 insertelement(5,root()): O(h) (h hoogte van T) José Lagerberg (FNWI, UvA) Datastructuren; (Zoek)bomen 35 / 50

36 Deletion van knoop uit binaire zoekboom Deletion van knoop Geval 0: knoop heeft geen kinderen Geval 1: knoop heeft één kind Geval 2: knoop heeft twee kinderen José Lagerberg (FNWI, UvA) Datastructuren; (Zoek)bomen 36 / 50

37 Geval 0: Deletion van knoop zonder kinderen removeelement(k): zoeken van sleutel k knoop v met key(v) = k gevonden Als knoop v twee bladeren heeft, verwijder v uit boom Voorbeeld: remove 4 José Lagerberg (FNWI, UvA) Datastructuren; (Zoek)bomen 37 / 50

38 Geval 1: Deletion van knoop v met één kind removeelement(k): zoeken van sleutel k knoop v met key(v) = k gevonden Als knoop v één blad w heeft, verwijder v en w uit boom (v vervangen door sibling van w) Voorbeeld: remove 4 José Lagerberg (FNWI, UvA) Datastructuren; (Zoek)bomen 38 / 50

39 Geval 2: Deletion van knoop v met twee kinderen Stel gevonden knoop v alleen interne knopen als kinderen w volgende knoop in inorder traversal (knoop w is meest linkse interne knoop in rechter subboom van v) Kopieer key(w) naar knoop v Verwijder w en diens linkerkind z (moet blad zijn) Voorbeeld: remove 3 José Lagerberg (FNWI, UvA) Datastructuren; (Zoek)bomen 39 / 50

40 Performance binaire zoekboom Performance met hoogte boom h Operatie Tijd findelement O(h) insertelement O(h) removeelement O(h) José Lagerberg (FNWI, UvA) Datastructuren; (Zoek)bomen 40 / 50

41 Performance findelement, insertelement, removeelement Worst case met O(n) operaties: Best case met O(log n) operaties: José Lagerberg (FNWI, UvA) Datastructuren; (Zoek)bomen 41 / 50

42 Balanced trees Definitie van hoogte van knoop Hoogte van knoop is lengte van langste pad naar externe knoop Definitie van completely balanced tree In completely balanced tree hebben linker en rechter subboom van elke knoop dezelfde hoogte Definitie van balanced tree Een boom is balanced als voor elke interne knoop hoogtes van twee subbomen hoogstens 1 verschillen Dit noemt men ook Height-balance eigenschap José Lagerberg (FNWI, UvA) Datastructuren; (Zoek)bomen 42 / 50

43 AVL-bomen (Adel son-vel skii & Landis, 1962) Hoogte van knoop is lengte van langste pad naar externe knoop Height-balance eigenschap voor elke interne knoop geldt dat hoogtes van twee subbomen hoogstens 1 verschillen Een AVL-boom is binaire zoekboom met Height-balance eigenschap Dat heeft volgende consequentie: De hoogte van AVL-boom met n elementen is O(log n) José Lagerberg (FNWI, UvA) Datastructuren; (Zoek)bomen 43 / 50

44 Height-balance eigenschap AVL-bomen Height-balance eigenschap van AVL-boom: linker en rechter subbomen verschillen hoogstens 1 in hoogte José Lagerberg (FNWI, UvA) Datastructuren; (Zoek)bomen 44 / 50

45 Height-balance eigenschap AVL-bomen Linker subboom heeft hoogte 1 groter dan elke rechter subboom AVL-boom Subboom met wortel 8 heeft hoogte 4 en subboom met wortel 18 heeft hoogte 2 geen AVL-boom José Lagerberg (FNWI, UvA) Datastructuren; (Zoek)bomen 45 / 50

46 Stelling De hoogte van AVL-boom met n elementen is O(log n) Bewijs Staat in het boek. Gebeurt met volledige inductie. Bewijs wordt niet gevraagd op tentamen. José Lagerberg (FNWI, UvA) Datastructuren; (Zoek)bomen 46 / 50

47 Balance factor van knoop De balance factor van knoop is hoogte van rechter subboom minus hoogte van linker subboom Een knoop is gebalanceerd als zijn balance factor gelijk aan 1, 0 of 1 is Een knoop met andere balance factor is ongebalanceerd José Lagerberg (FNWI, UvA) Datastructuren; (Zoek)bomen 47 / 50

48 Balance factor BF BF = (height right subtree - height left subtree) Dus, BF = -1, 0 or +1 voor AVL boom Balance factor van aantal voorbeeld AVL-bomen / \ / \ / \ / / / \ \ 0 José Lagerberg (FNWI, UvA) Datastructuren; (Zoek)bomen 48 / 50

49 Balance factor BF Balance factor van nietavl-boom +1 / \ 1 2 / / 0 +1 \ 0 José Lagerberg (FNWI, UvA) Datastructuren; (Zoek)bomen 49 / 50

50 Na insertion kan balans verstoord zijn Balans herstellen met Boomrotaties Dat doen we volgende week José Lagerberg (FNWI, UvA) Datastructuren; (Zoek)bomen 50 / 50

Datastructuren en Algoritmen voor CKI

Datastructuren en Algoritmen voor CKI Ω /texmf/tex/latex/uubeamer.sty-h@@k 00 /texmf/tex/latex/uubeamer.sty Datastructuren en Algoritmen voor CKI Vincent van Oostrom Clemens Grabmayer Afdeling Wijsbegeerte Hoorcollege 5 16 februari 2009 Waar

Nadere informatie

Tree traversal. Bomen zijn overal. Ferd van Odenhoven. 15 november 2011

Tree traversal. Bomen zijn overal. Ferd van Odenhoven. 15 november 2011 15 november 2011 Tree traversal Ferd van Odenhoven Fontys Hogeschool voor Techniek en Logistiek Venlo Software Engineering 15 november 2011 ODE/FHTBM Tree traversal 15 november 2011 1/22 1 ODE/FHTBM Tree

Nadere informatie

Hoofdstuk 2. Week 4: Datastructuren. 2.1 Leesopdracht. 2.2 Bomen. 2.3 Definitie

Hoofdstuk 2. Week 4: Datastructuren. 2.1 Leesopdracht. 2.2 Bomen. 2.3 Definitie Hoofdstuk 2 Week 4: Datastructuren 2.1 Leesopdracht In het hoorcollege komen lijsten en bomen aan de orde. De eerste datastructuur komt in het boek in bladzijden 317-333 aan de orde. In dit dictaat komt

Nadere informatie

Elementary Data Structures 3

Elementary Data Structures 3 Elementary Data Structures 3 Ferd van Odenhoven Fontys Hogeschool voor Techniek en Logistiek Venlo Software Engineering 29 september 2014 ODE/FHTBM Elementary Data Structures 3 29 september 2014 1/14 Meer

Nadere informatie

Java Programma structuur

Java Programma structuur Java Programma structuur public class Bla // div. statements public static void main(string argv[]) // meer spul Voortgezet Prog. voor KI, week 4:11 november 2002 1 Lijsten Voorbeelden 2, 3, 5, 7, 13 Jan,

Nadere informatie

Tree traversal. Ferd van Odenhoven. 15 november Fontys Hogeschool voor Techniek en Logistiek Venlo Software Engineering. Doorlopen van bomen

Tree traversal. Ferd van Odenhoven. 15 november Fontys Hogeschool voor Techniek en Logistiek Venlo Software Engineering. Doorlopen van bomen Tree traversal Ferd van Odenhoven Fontys Hogeschool voor Techniek en Logistiek Venlo Software Engineering 15 november 2011 ODE/FHTBM Tree traversal 15 november 2011 1/22 1 ODE/FHTBM Tree traversal 15 november

Nadere informatie

Opgaven Zoekbomen Datastructuren, 15 juni 2016, Werkgroep.

Opgaven Zoekbomen Datastructuren, 15 juni 2016, Werkgroep. Opgaven Zoekbomen Datastructuren, 15 juni 2016, Werkgroep. Gebruik deze opgaven, naast die uit het boek, om de stof te oefenen op het werkcollege. Cijfer: Op een toets krijg je meestal zes tot acht opgaven.

Nadere informatie

Datastructuren en algoritmen voor CKI

Datastructuren en algoritmen voor CKI Datastructuren en algoritmen voor CKI Jeroen Bransen 1 14 oktober 2015 1 met dank aan Hans Bodlaender en Gerard Tel Willekeurig gebouwde zoekbomen Willekeurig gebouwde zoekbomen Hoogte van zoekboom met

Nadere informatie

Bomen. 8.8 ongerichte bomen 9.4 gerichte bomen ch 10. binaire bomen

Bomen. 8.8 ongerichte bomen 9.4 gerichte bomen ch 10. binaire bomen 10 Bomen 8.8 ongerichte bomen 9.4 gerichte bomen ch 10. binaire bomen 1 Baarn Hilversum Soestdijk Den Dolder voorbeelden route boom beslisboom Amersfoort Soestduinen + 5 * + 5.1 5.2 5.3 5.4 2 3 * * 2 5.3.1

Nadere informatie

Vierde college complexiteit. 14 februari Beslissingsbomen

Vierde college complexiteit. 14 februari Beslissingsbomen College 4 Vierde college complexiteit 14 februari 2017 Restant zoeken Beslissingsbomen 1 Binair zoeken Links := 1; Rechts := n; while Links Rechts do Midden := Links + Rechts 2 ; if X = A[Midden] then

Nadere informatie

Datastructuren: stapels, rijen en binaire bomen

Datastructuren: stapels, rijen en binaire bomen Programmeermethoden Datastructuren: stapels, rijen en binaire bomen week 12: 23 27 november 2015 www.liacs.leidenuniv.nl/ kosterswa/pm/ 1 Inleiding In de informatica worden Abstracte DataTypen (ADT s)

Nadere informatie

Datastructuren. Analyse van algoritmen. José Lagerberg. FNWI, UvA. José Lagerberg (FNWI, UvA) Datastructuren 1 / 46

Datastructuren. Analyse van algoritmen. José Lagerberg. FNWI, UvA. José Lagerberg (FNWI, UvA) Datastructuren 1 / 46 Datastructuren Analyse van algoritmen José Lagerberg FNWI, UvA José Lagerberg (FNWI, UvA) Datastructuren 1 / 46 Datastructuren en Algoritmen Datastructuren, 6 ECTS eerstejaars Bachelor INF Datastructuren,

Nadere informatie

MEER OVER BINAIRE ZOEK BOMEN EN VARIANTEN

MEER OVER BINAIRE ZOEK BOMEN EN VARIANTEN MEER OVER BINAIRE ZOEK BOMEN EN VARIANTEN 1 Dr. D.P. Huijsmans 10 okt 2012 Universiteit Leiden, LIACS (HER)BALANCEREN VAN BST Hoe goed is de balans binnen een boom? Hoe karakteriseren we een optimale balans?

Nadere informatie

2 Recurrente betrekkingen

2 Recurrente betrekkingen WIS2 1 2 Recurrente betrekkingen 2.1 Fibonacci De getallen van Fibonacci Fibonacci (= Leonardo van Pisa), 1202: Bereken het aantal paren konijnen na één jaar, als 1. er na 1 maand 1 paar pasgeboren konijnen

Nadere informatie

public boolean equaldates() post: returns true iff there if the list contains at least two BirthDay objects with the same daynumber

public boolean equaldates() post: returns true iff there if the list contains at least two BirthDay objects with the same daynumber Tentamen TI1310 Datastructuren en Algoritmen, 15 april 2011, 9.00-12.00 TU Delft, Faculteit EWI, Basiseenheid Software Engineering Bij het tentamen mag alleen de boeken van Goodrich en Tamassia worden

Nadere informatie

Hoofdstuk 6. Geordende binaire bomen

Hoofdstuk 6. Geordende binaire bomen Hoofdstuk 6 Geordende binaire bomen Eerder bespraken we hoe gelinkte lijsten een zeer flexibele structuur geven. Het zoeken in een gelinkte lijst was echter niet optimaal, aangezien je enkel de lijst van

Nadere informatie

Vierde college complexiteit. 16 februari Beslissingsbomen en selectie

Vierde college complexiteit. 16 februari Beslissingsbomen en selectie Complexiteit 2016/04 College 4 Vierde college complexiteit 16 februari 2016 Beslissingsbomen en selectie 1 Complexiteit 2016/04 Zoeken: samengevat Ongeordend lineair zoeken: Θ(n) sleutelvergelijkingen

Nadere informatie

Syntax- (compile), runtime- en logische fouten Binaire operatoren

Syntax- (compile), runtime- en logische fouten Binaire operatoren Inhoud Syntax- (compile), runtime- en logische fouten Binaire operatoren Operaties op numerieke datatypen Evaluatie van expressies, bindingssterkte Assignment operaties en short-cut operatoren Controle

Nadere informatie

MEER OVER BINAIRE ZOEK BOMEN EN VARIANTEN

MEER OVER BINAIRE ZOEK BOMEN EN VARIANTEN MEER OVER BINAIRE ZOEK BOMEN EN VARIANTEN 1 Dr. D.P. Huijsmans 5e college 2 okt 2013 Universiteit Leiden, LIACS (HER)BALANCEREN VAN BST Hoe goed is de balans binnen een boom? Hoe karakteriseren we een

Nadere informatie

Discrete Structuren. Piter Dykstra Sietse Achterop Opleidingsinstituut Informatica en Cognitie

Discrete Structuren. Piter Dykstra Sietse Achterop Opleidingsinstituut Informatica en Cognitie Discrete Structuren Piter Dykstra Sietse Achterop Opleidingsinstituut Informatica en Cognitie www.math.rug.nl/~piter piter@math.rug.nl 3 maart 2008 GRAFEN & BOMEN Paragrafen 6.1-6.4 Discrete Structuren

Nadere informatie

Discrete Structuren. Piter Dykstra Opleidingsinstituut Informatica en Cognitie

Discrete Structuren. Piter Dykstra Opleidingsinstituut Informatica en Cognitie Discrete Structuren Piter Dykstra Opleidingsinstituut Informatica en Cognitie www.math.rug.nl/~piter piter@math.rug.nl 23 februari 2009 GRAFEN & BOMEN Paragrafen 6.1-6.4 Discrete Structuren Week 3 en 4:

Nadere informatie

Schriftelijk tentamen Datastructuren Woe 5 jan uur Met uitwerkingen

Schriftelijk tentamen Datastructuren Woe 5 jan uur Met uitwerkingen Schriftelijk tentamen Datastructuren Woe 5 jan 2011 14-17 uur Met uitwerkingen 1.a. Geef een compacte definitie van wat er bij Datastructuren verstaan wordt onder een Abstract Data Type (ADT). b. Werk

Nadere informatie

public boolean egualdates() post: returns true i f f there i f the l i s t contains at least two BirthDay objects with the same daynumber

public boolean egualdates() post: returns true i f f there i f the l i s t contains at least two BirthDay objects with the same daynumber Tentamen TI1310 Datastructuren en Algoritmen, 15 april 2011, 9.00-12.00 TU Delft, Faculteit EWI, Basiseenheid Software Engineering Bij het tentamen mag alleen de boeken van Goodrich en Tamassia worden

Nadere informatie

Tweede Toets Datastructuren 29 juni 2016, , Educ-Γ.

Tweede Toets Datastructuren 29 juni 2016, , Educ-Γ. Tweede Toets Datastructuren 29 juni 2016, 13.30 15.30, Educ-Γ. Motiveer je antwoorden kort! Zet je mobiel uit. Stel geen vragen over deze toets; als je een vraag niet duidelijk vindt, schrijf dan op hoe

Nadere informatie

Zevende college complexiteit. 17 maart Ondergrens sorteren, Quicksort

Zevende college complexiteit. 17 maart Ondergrens sorteren, Quicksort College 7 Zevende college complexiteit 17 maart 2008 Ondergrens sorteren, Quicksort 1 Sorteren We bekijken sorteeralgoritmen gebaseerd op het doen van vergelijkingen van de vorm A[i] < A[j]. Aannames:

Nadere informatie

Over binaire beslissingsdiagrammen naar Donald E. Knuth s The Art of Computer Programming, Volume 4

Over binaire beslissingsdiagrammen naar Donald E. Knuth s The Art of Computer Programming, Volume 4 Over binaire beslissingsdiagrammen naar Donald E. Knuth s The Art of Computer Programming, Volume 4 Jonathan K. Vis 1 Inleiding (blz. 70 72) In dit essay behandelen we bladzijden 70 75 van Donald E. Knuth

Nadere informatie

EE1400: Programmeren in C BSc. EE, 1e jaar, , 4e college

EE1400: Programmeren in C BSc. EE, 1e jaar, , 4e college EE1400: Programmeren in C BSc. EE, 1e jaar, 2012-2013, 4e college Arjan van Genderen, Computer Engineering 11-12-2012 Delft University of Technology Challenge the future Mededelingen Voortgangstoets: Woensdagmiddag

Nadere informatie

Datastructuren Programmeeropdracht 3: Expressies. 1 Expressies. Deadline. Dinsdag 8 december 23:59.

Datastructuren Programmeeropdracht 3: Expressies. 1 Expressies. Deadline. Dinsdag 8 december 23:59. Datastructuren 2015 Programmeeropdracht 3: Expressies Deadline. Dinsdag 8 december 23:59. Inleiding. Deze opdracht is losjes gebaseerd op Opdracht 5.13.2 in het boek van Drozdek. U wordt gevraagd expressies

Nadere informatie

Hoofdstuk 2. Iteratie, Recursie en Inductie. 2.1 Fibonacci getallen

Hoofdstuk 2. Iteratie, Recursie en Inductie. 2.1 Fibonacci getallen Hoofdstuk 2 Iteratie, Recursie en Inductie SCHAUM 1.8: Mathematical Induction, ook 11.3 SCHAUM 3.6: Recursively Defined Functions Er zijn slechts enkele passages in SCHAUM aan het belangrijke begrip recursie

Nadere informatie

Als een PSD selecties bevat, deelt de lijn van het programma zich op met de verschillende antwoorden op het vraagstuk.

Als een PSD selecties bevat, deelt de lijn van het programma zich op met de verschillende antwoorden op het vraagstuk. HOOFDSTUK 3 3.1 Stapsgewijs programmeren In de vorige hoofdstukken zijn programmeertalen beschreven die imperatief zijn. is het stapsgewijs in code omschrijven wat een programma moet doen, net als een

Nadere informatie

Tentamen Programmeren in C (EE1400)

Tentamen Programmeren in C (EE1400) TU Delft Tentamen Programmeren in C (EE1400) 5 april 2012, 9.00 12.00 Faculteit EWI - Zet op elk antwoordblad je naam en studienummer. - Beantwoord alle vragen zo nauwkeurig mogelijk. - Wanneer C code

Nadere informatie

Examen Datastructuren en Algoritmen II

Examen Datastructuren en Algoritmen II Tweede bachelor Informatica Academiejaar 2008 2009, eerste zittijd Examen Datastructuren en Algoritmen II Naam :.............................................................................. Lees elke

Nadere informatie

Algoritmen, Datastructuren en Complexiteit ( en ) Uitwerkingen

Algoritmen, Datastructuren en Complexiteit ( en ) Uitwerkingen Universiteit Twente 2009-2010/2 Afdeling Informatica, Faculteit EWI Tentamen dinsdag 19 januari 2010, 8.45-12.15 Algoritmen, Datastructuren en Complexiteit (214020 en 214025) Uitwerkingen Bij dit tentamen

Nadere informatie

Zelftest Inleiding Programmeren

Zelftest Inleiding Programmeren Zelftest Inleiding Programmeren Document: n0824test.fm 22/01/2013 ABIS Training & Consulting P.O. Box 220 B-3000 Leuven Belgium TRAINING & CONSULTING INLEIDING BIJ DE ZELFTEST INLEIDING PROGRAMMEREN Deze

Nadere informatie

Kortste Paden. Algoritmiek

Kortste Paden. Algoritmiek Kortste Paden Toepassingen Kevin Bacon getal Six degrees of separation Heeft een netwerk de small-world eigenschap? TomTom / Google Maps 2 Kortste paden Gerichte graaf G=(N,A), en een lengte L(v,w) voor

Nadere informatie

definities recursieve datastructuren college 13 plaatjes soorten Graph = ( V, E ) V vertices, nodes, objecten, knopen, punten

definities recursieve datastructuren college 13 plaatjes soorten Graph = ( V, E ) V vertices, nodes, objecten, knopen, punten recursieve datastructuren college graphs definities Graph = ( V, E ) V vertices, nodes, objecten, knopen, punten E edges, arcs, kanten, pijlen, lijnen verbinding tussen knopen Voorbeelden steden en verbindingswegen

Nadere informatie

Datastructuren en algoritmen voor CKI

Datastructuren en algoritmen voor CKI Datastructuren en algoritmen voor CKI Jeroen Bransen 1 2 oktober 2015 1 met dank aan Hans Bodlaender en Gerard Tel Priority queue Priority queue ADT insert(q, x): voeg element x toe aan de queue maximum(q):

Nadere informatie

De volgende opgave gaat over de B-bomen van het college, waar sleutels zowel in de bladeren als ook in de interne knopen opgeslagen worden.

De volgende opgave gaat over de B-bomen van het college, waar sleutels zowel in de bladeren als ook in de interne knopen opgeslagen worden. . a) Een Fibonacci boom (niet te verwarren met een Fibonacci queue) van hoogte h is een AVL-boom van hoogte h met zo weinig mogelijk knopen. i. Geefvoorh =,,,,eenfibonacciboomvanhoogteh(eenboombestaande

Nadere informatie

4EE11 Project Programmeren voor W. College 3, 2008 2009, Blok D Tom Verhoeff, Software Engineering & Technology, TU/e

4EE11 Project Programmeren voor W. College 3, 2008 2009, Blok D Tom Verhoeff, Software Engineering & Technology, TU/e 4EE11 Project Programmeren voor W College 3, 2008 2009, Blok D Tom Verhoeff, Software Engineering & Technology, TU/e 1 Onderwerpen Grotere programma s ontwerpen/maken Datastructuren en algoritmes 2 Evolutie,

Nadere informatie

Zevende college complexiteit. 7 maart Mergesort, Ondergrens sorteren (Quicksort)

Zevende college complexiteit. 7 maart Mergesort, Ondergrens sorteren (Quicksort) College 7 Zevende college complexiteit 7 maart 2017 Mergesort, Ondergrens sorteren (Quicksort) 1 Inversies Definitie: een inversie van de permutatie A[1],A[2],...,A[n] is een paar (A[i],A[j]) waarvoor

Nadere informatie

Automaten. Informatica, UvA. Yde Venema

Automaten. Informatica, UvA. Yde Venema Automaten Informatica, UvA Yde Venema i Inhoud Inleiding 1 1 Formele talen en reguliere expressies 2 1.1 Formele talen.................................... 2 1.2 Reguliere expressies................................

Nadere informatie

Het minimale aantal sleutels op niveau h is derhalve

Het minimale aantal sleutels op niveau h is derhalve 1 (a) In een B-boom van orde m bevat de wortel minimaal 1 sleutel en maximaal m 1 sleutels De andere knopen bevatten minimaal m 1 sleutels en maximaal m 1 sleutels (b) In een B-boom van orde 5 bevat elke

Nadere informatie

V = {a, b, c, d, e} Computernetwerken: de knopen zijn machines in het netwerk, de kanten zijn communicatiekanalen.

V = {a, b, c, d, e} Computernetwerken: de knopen zijn machines in het netwerk, de kanten zijn communicatiekanalen. WIS14 1 14 Grafen 14.1 Grafen Gerichte grafen Voor een verzameling V is een binaire relatie op V een verzameling geordende paren van elementen van V. Voorbeeld: een binaire relatie op N is de relatie KleinerDan,

Nadere informatie

Programmeermethoden. Recursie. Walter Kosters. week 11: november kosterswa/pm/

Programmeermethoden. Recursie. Walter Kosters. week 11: november kosterswa/pm/ Programmeermethoden Recursie Walter Kosters week 11: 20 24 november 2017 www.liacs.leidenuniv.nl/ kosterswa/pm/ 1 Vierde programmeeropgave 1 De Grote getallen programmeren we als volgt: week 1: pointerpracticum,

Nadere informatie

Hoofdstuk 3. Week 5: Sorteren. 3.1 Inleiding

Hoofdstuk 3. Week 5: Sorteren. 3.1 Inleiding Hoofdstuk 3 Week 5: Sorteren 3.1 Inleiding Zoals al bleek in college 1 kunnen zoekalgoritmen veel sneller worden uitgevoerd, indien we weten dat de elementen in de lijst, waarin wordt gezocht, geordend

Nadere informatie

Programmeermethoden. Recursie. week 11: november kosterswa/pm/

Programmeermethoden. Recursie. week 11: november kosterswa/pm/ Programmeermethoden Recursie week 11: 21 25 november 2016 www.liacs.leidenuniv.nl/ kosterswa/pm/ 1 Pointers Derde programmeeropgave 1 Het spel Gomoku programmeren we als volgt: week 1: pointerpracticum,

Nadere informatie

Dynamisch Programmeren III. Algoritmiek

Dynamisch Programmeren III. Algoritmiek Dynamisch Programmeren III Vandaag Dynamisch programmeren met wat lastiger voorbeelden: Handelsreiziger Longest common subsequence Optimale zoekbomen Knapsack 2 - DP2 Handelsreiziger Een handelsreiziger

Nadere informatie

Stacks and queues. Hoofdstuk 6

Stacks and queues. Hoofdstuk 6 Hoofdstuk 6 Stacks and queues I N T R O D U C T I E In dit hoofdstuk worden drie datastructuren stack, queue en deque behandeld. Om deze datastructuren te implementeren, worden onder andere arrays en linked

Nadere informatie

Gegevens invullen in HOOFDLETTERS en LEESBAAR, aub. Belgische Olympiades in de Informatica (duur : maximum 1u15 )

Gegevens invullen in HOOFDLETTERS en LEESBAAR, aub. Belgische Olympiades in de Informatica (duur : maximum 1u15 ) OI 2010 Finale 12 Mei 2010 Gegevens invullen in HOOFDLETTERS en LEESBAAR, aub VOORNAAM :....................................................... NAAM :..............................................................

Nadere informatie

Inleiding Programmeren 2

Inleiding Programmeren 2 Inleiding Programmeren 2 Gertjan van Noord November 28, 2016 Stof week 3 nogmaals Zelle hoofdstuk 8 en recursie Brookshear hoofdstuk 5: Algoritmes Datastructuren: tuples Een geheel andere manier om te

Nadere informatie

Discrete Structuren. Piter Dykstra Opleidingsinstituut Informatica en Cognitie

Discrete Structuren. Piter Dykstra Opleidingsinstituut Informatica en Cognitie Discrete Structuren Piter Dykstra Opleidingsinstituut Informatica en Cognitie www.math.rug.nl/~piter piter@math.rug.nl 22 februari 2009 INDUCTIE & RECURSIE Paragrafen 4.3-4.6 Discrete Structuren Week 3:

Nadere informatie

Voorbeeldtentamen Inleiding programmeren (IN1608WI), Oktober 2003, , Technische Universiteit Delft, Faculteit EWI, Afdeling 2.

Voorbeeldtentamen Inleiding programmeren (IN1608WI), Oktober 2003, , Technische Universiteit Delft, Faculteit EWI, Afdeling 2. Voorbeeldtentamen Inleiding programmeren (IN1608WI), Oktober 2003, 14.00-15.30, Technische Universiteit Delft, Faculteit EWI, Afdeling 2. Dit tentamen bestaat uit twee delen. Deel 1 (14.00-14.45, gesloten

Nadere informatie

Programmeermethoden NA. Week 6: Lijsten

Programmeermethoden NA. Week 6: Lijsten Programmeermethoden NA Week 6: Lijsten Kristian Rietveld http://liacs.leidenuniv.nl/~rietveldkfd/courses/prna2016/ Getal opbouwen Stel je leest losse karakters (waaronder cijfers) en je moet daar een getal

Nadere informatie

Onafhankelijke verzamelingen en Gewogen Oplossingen, door Donald E. Knuth, The Art of Computer Programming, Volume 4, Combinatorial Algorithms

Onafhankelijke verzamelingen en Gewogen Oplossingen, door Donald E. Knuth, The Art of Computer Programming, Volume 4, Combinatorial Algorithms Onafhankelijke verzamelingen en Gewogen Oplossingen, door Donald E. Knuth, The Art of Computer Programming, Volume 4, Combinatorial Algorithms Giso Dal (0752975) Pagina s 5 7 1 Deelverzameling Representatie

Nadere informatie

TECHNISCHE UNrVERSITElT DELFT Faculteit Elektrotechniek, Wiskunde en Informatica

TECHNISCHE UNrVERSITElT DELFT Faculteit Elektrotechniek, Wiskunde en Informatica TECHNISCHE UNrVERSITElT DELFT Faculteit Elektrotechniek, Wiskunde en Informatica TWl(0)9O Inleiding Programmeren Tentamen 16 maart 2017, 9:00-12:00 uur Normering: Opgave 1 t/m 3 ieder 6 punten. Score:

Nadere informatie

Derde college complexiteit. 7 februari Zoeken

Derde college complexiteit. 7 februari Zoeken College 3 Derde college complexiteit 7 februari 2017 Recurrente Betrekkingen Zoeken 1 Recurrente betrekkingen -1- Rij van Fibonacci: 0,1,1,2,3,5,8,13,21,... Vanaf het derde element: som van de voorgaande

Nadere informatie

recursie Hoofdstuk 5 Studeeraanwijzingen De studielast van deze leereenheid bedraagt circa 6 uur. Terminologie

recursie Hoofdstuk 5 Studeeraanwijzingen De studielast van deze leereenheid bedraagt circa 6 uur. Terminologie Hoofdstuk 5 Recursion I N T R O D U C T I E Veel methoden die we op een datastructuur aan kunnen roepen, zullen op een recursieve wijze geïmplementeerd worden. Recursie is een techniek waarbij een vraagstuk

Nadere informatie

HOOFDSTUK 3. Imperatief programmeren. 3.1 Stapsgewijs programmeren. 3.2 If Then Else. Module 4 Programmeren

HOOFDSTUK 3. Imperatief programmeren. 3.1 Stapsgewijs programmeren. 3.2 If Then Else. Module 4 Programmeren HOOFDSTUK 3 3.1 Stapsgewijs programmeren De programmeertalen die tot nu toe genoemd zijn, zijn imperatieve of procedurele programmeertalen. is het stapsgewijs in code omschrijven wat een programma moet

Nadere informatie

software constructie recursieve datastructuren college 15 5 stappen plan ontwerpen de software bestaat uiteindelijk uit datatypen functies

software constructie recursieve datastructuren college 15 5 stappen plan ontwerpen de software bestaat uiteindelijk uit datatypen functies software constructie recursieve datastructuren college 15 software engineering highlights 1 de software bestaat uiteindelijk uit datatypen functies verbindingen geven gebruik aan main is de top van het

Nadere informatie

SQL Aantekeningen 3. Maarten de Rijke mdr@science.uva.nl. 22 mei 2003

SQL Aantekeningen 3. Maarten de Rijke mdr@science.uva.nl. 22 mei 2003 SQL Aantekeningen 3 Maarten de Rijke mdr@science.uva.nl 22 mei 2003 Samenvatting In deze aflevering: het selecteren van tuples, operaties op strings, en aggregatie functies. Verder kijken we naar iets

Nadere informatie

Vijfde college complexiteit. 21 februari Selectie Toernooimethode Adversary argument

Vijfde college complexiteit. 21 februari Selectie Toernooimethode Adversary argument Complexiteit 2017/05 College 5 Vijfde college complexiteit 21 februari 2017 Selectie Toernooimethode Adversary argument 1 Complexiteit 2017/05 Opgave 28 Gegeven twee oplopend gesorteerde even lange rijen

Nadere informatie

Opdracht 1 Topics on Parsing and Formal Languages - fall 2010

Opdracht 1 Topics on Parsing and Formal Languages - fall 2010 Opdracht 1 Topics on Parsing and Formal Languages - fall 2010 Rick van der Zwet 13 november 2010 Samenvatting Dit schrijven zal uitwerkingen van opgaven behandelen uit het boek [JS2009]

Nadere informatie

Tentamen in2705 Software Engineering

Tentamen in2705 Software Engineering Tentamen in2705 Software Engineering Voorbeeld (bijna tweemaal te groot) U mag meenemen naar dit tentamen: Lethbridge, afdrukken PPT slides, afdrukken handouts. 1. De TU wil een nieuw systeem ontwikkelen

Nadere informatie

Semantiek (2IT40) Jos Baeten. HG 7.19 tel.: Hoorcollege 3 (12 april 2007)

Semantiek (2IT40) Jos Baeten.  HG 7.19 tel.: Hoorcollege 3 (12 april 2007) Jos Baeten josb@wintuenl http://wwwwintuenl/~josb/ HG 719 tel: 040 247 5155 Hoorcollege 3 (12 april 2007) Voorbeeld [Bewijstechniek 2 niet altijd succesvol] Executie van commands is deterministisch: c

Nadere informatie

Grafen. Indien de uitgraad van ieder punt 1 is, dan bevat de graaf een cykel. Indien de ingraad van ieder punt 1 is, dan bevat de graaf een cykel.

Grafen. Indien de uitgraad van ieder punt 1 is, dan bevat de graaf een cykel. Indien de ingraad van ieder punt 1 is, dan bevat de graaf een cykel. Grafen Grafen Een graaf bestaat uit een verzameling punten (ook wel knopen, of in het engels vertices genoemd) en een verzameling kanten (edges) of pijlen (arcs), waarbij de kanten en pijlen tussen twee

Nadere informatie

Examen Datastructuren en Algoritmen II

Examen Datastructuren en Algoritmen II Tweede bachelor Informatica Academiejaar 2008 2009, tweede zittijd Examen Datastructuren en Algoritmen II Naam :.............................................................................. Lees elke

Nadere informatie

Twaalfde college complexiteit. 11 mei 2012. Overzicht, MST

Twaalfde college complexiteit. 11 mei 2012. Overzicht, MST College 12 Twaalfde college complexiteit 11 mei 2012 Overzicht, MST 1 Agenda voor vandaag Minimum Opspannende Boom (minimum spanning tree) als voorbeeld van greedy algoritmen Overzicht: wat voor technieken

Nadere informatie

Computationale Intelligentie Dirk Thierens

Computationale Intelligentie Dirk Thierens Computationale Intelligentie Dirk Thierens Organisatie Onderwijsvormen: Docent: Topic: Collegemateriaal: Boek: Beoordeling: hoorcollege, practicum, werkcollege Dirk Thierens Deel : Zoekalgoritmen Toets

Nadere informatie

Tentamen Data Mining. Algemene Opmerkingen. Opgave L. Korte vragen (L6 punten) Tijd: 14:00-17:00. Datum: 4januai20l6

Tentamen Data Mining. Algemene Opmerkingen. Opgave L. Korte vragen (L6 punten) Tijd: 14:00-17:00. Datum: 4januai20l6 Tentamen Data Mining Datum: 4januai2l6 Tijd: 4: - 7: Algemene Opmerkingen e Dit is geen open boek tentamen, noch mogen er aantekeningen gebruikt worden. o Laat bij het uitvoeren van berekeningen zien hoeje

Nadere informatie

Oefeningen voor de oefeningenles. Oefening 1

Oefeningen voor de oefeningenles. Oefening 1 Oefeningen voor de oefeningenles Oefening 1 Gegeven een arbitraire binaire zoekboom T met n toppen en een (andere of gelijke) binaire zoekboom T die ook n sleutels bevat. Beschrijf een algoritme dat in

Nadere informatie

Examen Datastructuren en Algoritmen II

Examen Datastructuren en Algoritmen II Tweede bachelor Informatica Academiejaar 2009 2010, eerste zittijd Examen Datastructuren en Algoritmen II Naam :.............................................................................. Lees de hele

Nadere informatie

17 Operaties op bits. 17.1 Bitoperatoren en bitexpressies

17 Operaties op bits. 17.1 Bitoperatoren en bitexpressies 17 Operaties op bits In hoofdstuk 1 is gezegd dat C oorspronkelijk bedoeld was als systeemprogrammeertaal om het besturingssysteem UNIX te implementeren. Bij dit soort toepassingen komt het voor dat afzonderlijke

Nadere informatie

Datastructuren en algoritmen

Datastructuren en algoritmen Datastructuren en algoritmen Doelstelling Datastructures + algorithms = programs Boek van Niklaus Wirth: bedenker Pascal en Modula Datastructuur: structuur om informatie op te slaan Algoritme: voorschrift

Nadere informatie

Vakgroep CW KAHO Sint-Lieven

Vakgroep CW KAHO Sint-Lieven Vakgroep CW KAHO Sint-Lieven Objecten Programmeren voor de Sport: Een inleiding tot JAVA objecten Wetenschapsweek 20 November 2012 Tony Wauters en Tim Vermeulen tony.wauters@kahosl.be en tim.vermeulen@kahosl.be

Nadere informatie

10 Meer over functies

10 Meer over functies 10 Meer over functies In hoofdstuk 5 hebben we functies uitgebreid bestudeerd. In dit hoofdstuk bekijken we drie andere aspecten van functies: recursieve functies dat wil zeggen, functies die zichzelf

Nadere informatie

TW2020 Optimalisering

TW2020 Optimalisering TW2020 Optimalisering Hoorcollege 8 Leo van Iersel Technische Universiteit Delft 2 november 2016 Leo van Iersel (TUD) TW2020 Optimalisering 2 november 2016 1 / 28 Minimum Opspannende Boom (Minimum Spanning

Nadere informatie

Lab Webdesign: Javascript 3 maart 2008

Lab Webdesign: Javascript 3 maart 2008 H5: OPERATORS In dit hoofdstuk zullen we het hebben over de operators (of ook wel: operatoren) in JavaScript waarmee allerlei rekenkundige en logische bewerkingen kunnen worden uitgevoerd. Daarbij zullen

Nadere informatie

Kosten. Zoekalgoritmen ( ) College 5: Zoeken met kosten. Een zoekprobleem met stapkosten. Een voorbeeld: het vinden van een route

Kosten. Zoekalgoritmen ( ) College 5: Zoeken met kosten. Een zoekprobleem met stapkosten. Een voorbeeld: het vinden van een route Kosten Zoekalgoritmen (00 00) ollege 5: Zoeken met kosten Peter de Waal, Tekst: Linda van der aag Veel zoekproblemen omvatten kosten: een afstand in kilometers; een geldbedrag; een hoeveelheid tijd; ongemak;...

Nadere informatie

compileren & interpreteren - compileren: vertalen (omzetten) - interpreteren: vertolken

compileren & interpreteren - compileren: vertalen (omzetten) - interpreteren: vertolken compileren & interpreteren - compileren: vertalen (omzetten) - interpreteren: vertolken - belangrijkste punten: - ontleden van de programmatekst - bijhouden van de datastructuren Data Structuren en Algoritmen

Nadere informatie

TW2020 Optimalisering

TW2020 Optimalisering TW2020 Optimalisering Hoorcollege 8 Leo van Iersel Technische Universiteit Delft 28 oktober 2015 Leo van Iersel (TUD) TW2020 Optimalisering 28 oktober 2015 1 / 25 Definitie Een boom is een samenhangende

Nadere informatie

Pascal uitgediept Data structuren

Pascal uitgediept Data structuren Pascal uitgediept Data structuren MSX Computer & Club Magazine nummer 68-juni/juli 1994 Herman Post Scanned, ocr ed and converted to PDF by HansO, 2001 In deze aflevering wordt bekeken hoe zelf een datastructuur

Nadere informatie

1 Inleiding in Functioneel Programmeren

1 Inleiding in Functioneel Programmeren 1 Inleiding in Functioneel Programmeren door Elroy Jumpertz 1.1 Inleiding Aangezien Informatica een populaire minor is voor wiskundestudenten, leek het mij nuttig om een stukje te schrijven over een onderwerp

Nadere informatie

Oefententamen in2505-i Algoritmiek

Oefententamen in2505-i Algoritmiek TECHNISCHE UNIVERSITEIT DELFT Faculteit Elektrotechniek, Wiskunde en Informatica Oefententamen in2505-i Algoritmiek Maart 2007 Het gebruik van boek of aantekeningen tijdens dit tentamen is niet toegestaan.

Nadere informatie

29 november 2012 Hashing. Een tijd-ruimte afweging Hashfuncties

29 november 2012 Hashing. Een tijd-ruimte afweging Hashfuncties Hashing Ferd van Odenhoven Fontys Hogeschool voor Techniek en Logistiek Venlo Software Engineering 29 november 2012 ODE/FHTBM Hashing 29 november 2012 1/30 Hashing Een typisch gebruik van de implementatie

Nadere informatie

2WO12: Optimalisering in Netwerken

2WO12: Optimalisering in Netwerken 2WO12: Optimalisering in Netwerken Leo van Iersel Technische Universiteit Eindhoven (TU/E) en Centrum Wiskunde & Informatica (CWI) 27 februari 2014 http://homepages.cwi.nl/~iersel/2wo12/ l.j.j.v.iersel@gmail.com

Nadere informatie

colleges recursieve datastructuren college 9 prioriteit van operatoren prioriteit in recursive descent parser

colleges recursieve datastructuren college 9 prioriteit van operatoren prioriteit in recursive descent parser colleges recursieve datastructuren college 9 interpreteren: waarde van bomen bepalen transformeren: vorm van bomen veranderen parseren herkennen van expressie in de tekst herkennen van functies onderwerp

Nadere informatie

De doorsnede van twee verzamelingen vinden

De doorsnede van twee verzamelingen vinden De doorsnede van twee verzamelingen vinden Daniel von Asmuth Inleiding Dit artikel probeert enkele algoritmen te vergelijken om de doorsnede van twee verzamelingen of rijen van getallen te vinden. In een

Nadere informatie

Honours projecten BSc Informatica: twee voorstellen

Honours projecten BSc Informatica: twee voorstellen Honours projecten BSc Informatica: twee voorstellen mogelijk ook geschikt voor BSc Kunstmatige Intelligentie Alban Ponse section Theory of Computer Science Informatics Institute, University of Amsterdam

Nadere informatie

Een eenvoudig algoritme om permutaties te genereren

Een eenvoudig algoritme om permutaties te genereren Een eenvoudig algoritme om permutaties te genereren Daniel von Asmuth Inleiding Er zijn in de vakliteratuur verschillende manieren beschreven om alle permutaties van een verzameling te generen. De methoden

Nadere informatie

Indexen.

Indexen. Indexen joost.vennekens@kuleuven.be Probleem Snel gegevens terugvinden Gegevens moeten netjes geordend zijn Manier waarop hangt af van gebruik Sequentieel Gesorteerde gegevens, die in volgorde overlopen

Nadere informatie

Recapitulatie: Ongeïnformeerd zoeken. Zoekalgoritmen ( ) College 2: Ongeïnformeerd zoeken. Dynamische breadth-first search

Recapitulatie: Ongeïnformeerd zoeken. Zoekalgoritmen ( ) College 2: Ongeïnformeerd zoeken. Dynamische breadth-first search Recapitulatie: Ongeïnformeerd zoeken Zoekalgoritmen (009 00) College : Ongeïnformeerd zoeken Peter de Waal, Tekst: Linda van der Gaag een algoritme voor ongeïnformeerd zoeken doorzoekt de zoekruimte van

Nadere informatie

RuG-Informatica-cursus Discrete Structuren, versie 2009/2010

RuG-Informatica-cursus Discrete Structuren, versie 2009/2010 RuG-Informatica-cursus Discrete Structuren, versie 2009/2010 Handout 3A Jan Terlouw maandag 22 februari 2010 De eerste paragraaf van deze handout is inhoudelijk een afronding van handout 2B (versie als

Nadere informatie

Uitgebreide uitwerking tentamen Algoritmiek Dinsdag 5 juni 2007, uur

Uitgebreide uitwerking tentamen Algoritmiek Dinsdag 5 juni 2007, uur Uitgebreide uitwerking tentamen Algoritmiek Dinsdag juni 00, 0.00.00 uur Opgave. a. Een toestand bestaat hier uit een aantal stapels, met op elk van die stapels een aantal munten (hooguit n per stapel).

Nadere informatie

Opgaven. Python Assessment

Opgaven. Python Assessment Opgaven Python Assessment Nijmegen - Utrecht www.atcomputing.nl Copyright 2015,2016 Versie: 1a Inleiding Met dit assessment kun je controleren of je voldoende parate kennis over Python hebt om te beginnen

Nadere informatie

Algoritmen, Datastructuren en Complexiteit (214020/5)

Algoritmen, Datastructuren en Complexiteit (214020/5) Universiteit Twente Semester 2005/1 Afdeling Informatica 2 e huiswerkserie 13 december 2005 Algoritmen, Datastructuren en Complexiteit (214020/5) De deadline voor het inleveren van deze huiswerkserie (bij

Nadere informatie

(On)Doenlijke problemen

(On)Doenlijke problemen Fundamentele Informatica In3 005 Deel 2 College 1 Cees Witteveen Parallelle en Gedistribueerde Systemen Faculteit Informatie Technologie en Systemen Overzicht Inleiding - Relatie Deel 1 en Deel 2 - Doenlijke

Nadere informatie

Opdracht 1 Topics on Parsing and Formal Languages - fall 2010

Opdracht 1 Topics on Parsing and Formal Languages - fall 2010 Opdracht 1 Topics on Parsing and Formal Languages - fall 2010 Rick van der Zwet 8 december 2010 Samenvatting Dit schrijven zal uitwerkingen van opgaven behandelen uit het boek [JS2009]

Nadere informatie

Duration: 2 hrs; Total points: 100 No documents allowed. Use of electronic devices, such as calculators, smartphones, smartwatches is forbidden.

Duration: 2 hrs; Total points: 100 No documents allowed. Use of electronic devices, such as calculators, smartphones, smartwatches is forbidden. : Computationele Intelligentie (INFOBCI) Midterm Exam Duration: hrs; Total points: No documents allowed. Use of electronic devices, such as calculators, smartphones, smartwatches is forbidden. Question

Nadere informatie

Handleiding Excel. bij. hoofdstuk 18 Cijfers in Orde Wageningse Methode

Handleiding Excel. bij. hoofdstuk 18 Cijfers in Orde Wageningse Methode Handleiding Excel bij hoofdstuk 18 Cijfers in Orde Wageningse Methode oktober 2008 1 Excel (Nederlandtalig) Excel is een programma dat snel allerlei berekeningen kan uitvoeren. Ook kan het programma gemakkelijk

Nadere informatie

Overzicht. 1. Definities. 2. Basisalgoritme. 3. Label setting methoden. 4. Label correcting methoden. 5. Ondergrenzen. 6.

Overzicht. 1. Definities. 2. Basisalgoritme. 3. Label setting methoden. 4. Label correcting methoden. 5. Ondergrenzen. 6. Overzicht 1. Definities 2. Basisalgoritme 3. Label setting methoden 4. Label correcting methoden 5. Ondergrenzen 6. Resultaten Kortste Pad Probleem 1 Definities Een graaf G = (V, E) bestaat uit een verzameling

Nadere informatie