Datastructuren; (Zoek)bomen
|
|
|
- Dries Christiaens
- 10 jaren geleden
- Aantal bezoeken:
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
Ω /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
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
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
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
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,
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
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.
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
Algoritmiek. 15 februari Grafen en bomen
Algoritmiek 15 februari 2019 Grafen en bomen 1 Grafen (herhaling) Een graaf G wordt gedefinieerd als een paar (V,E), waarbij V een eindige verzameling is van knopen (vertices) en E een verzameling van
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
Opgaven Zoekbomen Datastructuren, 20 juni 2018, Werkgroep.
Opgaven Zoekbomen Datastructuren, 20 juni 2018, 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.
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
Tweede college algoritmiek. 12 februari Grafen en bomen
College 2 Tweede college algoritmiek 12 februari 2016 Grafen en bomen 1 Grafen (herhaling) Een graaf G wordt gedefinieerd als een paar (V,E), waarbij V een eindige verzameling is van knopen (vertices)
Datastructuren en algoritmen voor CKI
Datastructuren en algoritmen voor CKI Jeroen Bransen 1 11 september 2015 1 met dank aan Hans Bodlaender en Gerard Tel Heaps en heapsort Heap 1 2 3 4 5 6 7 8 9 10 16 14 10 8 7 9 3 2 4 1 16 14 10 8 7 9 3
Datastructuren en Algoritmen
Datastructuren en Algoritmen Tentamen Vrijdag 6 november 2015 13.30-16.30 Toelichting Bij dit tentamen mag je gebruik maken van een spiekbriefje van maximaal 2 kantjes. Verder mogen er geen hulpmiddelen
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,
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)
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
Doorzoeken van grafen. Algoritmiek
Doorzoeken van grafen Algoritmiek Vandaag Methoden om door grafen te wandelen Depth First Search Breadth First Search Gerichte Acyclische Grafen en topologische sorteringen 2 Doolhof start eind 3 Depth
Zevende college algoritmiek. 24 maart Verdeel en Heers
Zevende college algoritmiek 24 maart 2016 Verdeel en Heers 1 Verdeel en heers 1 Divide and Conquer 1. Verdeel een instantie van het probleem in twee (of meer) kleinere instanties 2. Los de kleinere instanties
Uitwerking tentamen Algoritmiek 10 juni :00 13:00
Uitwerking tentamen Algoritmiek 10 juni 2014 10:00 13:00 1. Dominono s a. Toestanden: n x n bord met in elk hokje een O, een X of een -. Hierbij is het aantal X gelijk aan het aantal O of hooguit één hoger.
Uitwerking tentamen Algoritmiek 9 juli :00 13:00
Uitwerking tentamen Algoritmiek 9 juli 0 0:00 :00. (N,M)-game a. Toestanden: Een geheel getal g, waarvoor geldt g N én wie er aan de beurt is (Tristan of Isolde) b. c. Acties: Het noemen van een geheel
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
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
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 [email protected] 3 maart 2008 GRAFEN & BOMEN Paragrafen 6.1-6.4 Discrete Structuren
Examen Datastructuren en Algoritmen II
Tweede bachelor Informatica Academiejaar 2012 2013, tweede zittijd Examen Datastructuren en Algoritmen II Naam :.............................................................................. Lees de hele
Discrete Structuren. Piter Dykstra Opleidingsinstituut Informatica en Cognitie
Discrete Structuren Piter Dykstra Opleidingsinstituut Informatica en Cognitie www.math.rug.nl/~piter [email protected] 23 februari 2009 GRAFEN & BOMEN Paragrafen 6.1-6.4 Discrete Structuren Week 3 en 4:
Vierde college complexiteit. 26 februari Beslissingsbomen en selectie Toernooimethode Adversary argument
Complexiteit 2019/04 College 4 Vierde college complexiteit 26 februari 2019 Beslissingsbomen en selectie Toernooimethode Adversary argument 1 Complexiteit 2019/04 Zoeken: samengevat Ongeordend lineair
DATASTRUCTUREN VOOR GESORTEERDE DATA
15 DATASTRUCTUREN VR GESRTEERDE DATA 11 20 2 3 13 18 25 60 7 12 14 23 1 Dr. D.P. Huijsmans 18 sept 2013 Universiteit Leiden, LIACS NDERWERPEN 18 SEPT - Tot nu toe rijen/lijsten met beperkte toegang - stack:
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
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:
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
Minimum Opspannende Bomen. Algoritmiek
Minimum Opspannende Bomen Inhoud Het minimum opspannende bomen probleem Een principe om een minimum opspannende boom te laten groeien Twee greedy algoritmen + tijd en datastructuren: Het algoritme van
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
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
Vierde college algoritmiek. 2 maart Toestand-actie-ruimte Exhaustive Search
Algoritmiek 2018/Toestand-actie-ruimte Vierde college algoritmiek 2 maart 2018 Toestand-actie-ruimte Exhaustive Search 1 Algoritmiek 2018/Toestand-actie-ruimte Kannen Voorbeeld 4: Kannenprobleem We hebben
Talen & Automaten. Wim Hesselink Piter Dykstra Opleidingsinstituut Informatica en Cognitie 9 mei 2008
Talen & Automaten Wim Hesselink Piter Dykstra Opleidingsinstituut Informatica en Cognitie www.cs.rug.nl/~wim 9 mei 2008 Talen & automaten Week 1: Inleiding Dit college Talen Automaten Berekenbaarheid Weekoverzicht
Datastructuren Uitwerking jan
Datastructuren Uitwerking jan 2015 1 1a. Een abstracte datastructuur is een beschrijving van een datastructuur, met de specificatie van wat er opgeslagen wordt (de data en hun structuur) en welke operaties
Tentamen Programmeren in C (EE1400)
TU Delft Tentamen Programmeren in C (EE1400) 3 feb. 2012, 9.00 12.00 Faculteit EWI - Zet op elk antwoordblad je naam en studienummer. - Beantwoord alle vragen zo nauwkeurig mogelijk. - Wanneer C code gevraagd
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
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
Datastructuren: stapels, rijen en binaire bomen
Programmeermethoden : stapels, rijen en binaire bomen Walter Kosters week 12: 26 30 november 2018 www.liacs.leidenuniv.nl/ kosterswa/pm/ 1 en Vierde programmeeropgave Othello programmeren we als volgt:
Divide & Conquer: Verdeel en Heers vervolg. Algoritmiek
Divide & Conquer: Verdeel en Heers vervolg Algoritmiek Algoritmische technieken Vorige keer: Divide and conquer techniek Aantal toepassingen van de techniek Analyse met Master theorem en substitutie Vandaag:
Datastructuren Programmeeropdracht 2: Expressies. 1 Expressies. Deadlines. Woensdag 12 oktober 23:59, resp. woensdag 2 november 23:59.
Datastructuren 2016 Programmeeropdracht 2: Expressies Deadlines. Woensdag 12 oktober 23:59, resp. woensdag 2 november 23:59. Inleiding. Deze opdracht is losjes gebaseerd op Opdracht 5.13.2 in het boek
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
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
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
Examen Datastructuren en Algoritmen II
Tweede bachelor Informatica Academiejaar 2008 2009, eerste zittijd Examen Datastructuren en Algoritmen II Naam :.............................................................................. Lees elke
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
ALGORITMIEK: antwoorden werkcollege 5
1 ALGORITMIEK: antwoorden werkcollege 5 opgave 1. a. Brute force algoritme, direct afgeleid uit de observatie: loop v.l.n.r. door de tekst; als je een A tegenkomt op plek i (0 i < n 1), loop dan van daaruit
ALGORITMIEK: antwoorden werkcollege 5
ALGORITMIEK: antwoorden werkcollege 5 opgave 1. a. Brute force algoritme, direct afgeleid uit de observatie: loop v.l.n.r. door de tekst; als je een A tegenkomt op plek i (0 i < n 1), loop dan van daaruit
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
Zesde college complexiteit. 19 maart Mergesort, Ondergrens sorteren Quicksort, Shellsort
College 6 Zesde college complexiteit 19 maart 2019 Mergesort, Ondergrens sorteren Quicksort, Shellsort 1 Vorige keer Voor sorteeralgoritmen gebaseerd op arrayvergelijkingen, waarbij per arrayvergelijking
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
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):
Examen Datastructuren en Algoritmen II
Tweede bachelor Informatica Academiejaar 2014 2015, eerste zittijd Examen Datastructuren en Algoritmen II Naam :.............................................................................. Lees de hele
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
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................................
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 :..............................................................
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,
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
Uitwerking tentamen Analyse van Algoritmen, 29 januari
Uitwerking tentamen Analyse van Algoritmen, 29 januari 2007. (a) De buitenste for-lus kent N = 5 iteraties. Na iedere iteratie ziet de rij getallen er als volgt uit: i rij na i e iteratie 2 5 4 6 2 2 4
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,
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
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
Discrete Structuren. Piter Dykstra Opleidingsinstituut Informatica en Cognitie
Discrete Structuren Piter Dykstra Opleidingsinstituut Informatica en Cognitie www.math.rug.nl/~piter [email protected] 22 februari 2009 INDUCTIE & RECURSIE Paragrafen 4.3-4.6 Discrete Structuren Week 3:
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,
Examen Datastructuren en Algoritmen II
Tweede bachelor Informatica Academiejaar 2016 2017, eerste zittijd Examen Datastructuren en Algoritmen II Naam :.............................................................................. Lees de hele
Inleiding Programmeren 2
Inleiding Programmeren 2 Gertjan van Noord November 26, 2018 Stof week 3 nogmaals Zelle hoofdstuk 8 en recursie Brookshear hoofdstuk 5: Algoritmes Datastructuren: tuples Een geheel andere manier om te
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
