Ω /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 in het boek zijn we? 1. Java Programming Basis 2. Object Oriented Design 3. Arrays, Linked Lists, and Recursion 4. Analysis Tools 5. Stacks and Queues 6. Lists and Iterators 7. Trees 8. Priority Queues 9. Maps and Dictionaries 10. Search Trees 11. Sorting, Sets, and Selection 12. Text Processing 13. Graphs 14. Memory
Webpagina: beveiligde pagina s Beveiligde pagina s http://www.phil.uu.nl/datastructuren/08-09/beveiligd/... voor: slides uit het boek van Goodrich/Tamassia uitslagen, en individuele opmerkingen van inleveropdrachten Inloggegevens: user name: student password:......
Stamboom (I)
Stamboom (II)
Formal Tree Definition [Goodrich/Tamassia: Data Structures and Algorithms in Java, p. 267] Definition A tree is a set T of nodes storing elements such that the nodes have a parent-child relationship that satisfies: If T is nonempty, it has a special node, called the root of T, that has no parent Each node v of T different from the root has a unique parent node w; every node with parent w is a child of w.
Formal Tree Definition (corrected) [Goodrich/Tamassia: Data Structures and Algorithms in Java, p. 267] Definition A tree is a set T of nodes storing elements such that the nodes have a parent-child relationship that satisfies: If T is nonempty, it has a special node, called the root of T, that has no parent and that is reachable from every node of T. Each node v of T different from the root has a unique parent node w; every node with parent w is a child of w.
Diepte van knopen in bomen Definitie Zij v een knoop in een boom T. De diepte (depth) van v in T is het aantal voorouders van v behalve v zelf. De diepte van een knoop v kan als volgt recursief worden gedefiniëerd: Als v de wortel is, dan heeft v diepte 0. Anders is de diepte van v gelijk aan 1 plus de diepte van de ouder van v.
Hoogte van (knopen in) bomen Definitie Zij v een knoop in een boom T. De hoogte (height) van v in T is als volgt recursief gedefiniëerd: Als v een externe knoop is, dan heeft v hoogte 0. Anders is de hoogte van v in T gelijk aan 1 plus de maximale hoogte van de kind van v in T. De hoogte (height) van T is de hoogte van de wortel van T. Propositie Laat T een niet-lege boom, en v een knoop in T. De hoogte van v is de de maximale diepte van een externe knoop in de sub-boom van v in T. De hoogte van een niet-lege boom T is de maximale diepte van een externe knoop van T.
Binary Tree ADT left(v): Return the left child of v; an error condition occurs if v has no left child. right(v): Return the right child of v; an error condition occurs if v has no right child. hasleft(v): Test whether v has a left child. hasright(v): Test whether v has a right child.
Verhouding int./ext. knopen in volle binaire bomen Een binaire boom is vol ( proper, full binary tree ) als elke knoop of twee of geen kinderen heeft. Propositie In een niet-lege volle binaire boom T met n E externe en n I interne knopen geldt: n E = n I + 1 Bewijs. Twee mogelijkheden: 1. T zien als representatie van een knockout-toernooi: extern knoop = team; intern knoop = wedstrijd; aan het einde van ieder wedstrijd valt een team af; een team (dat van de winnaars) valt bij geen wedstrijd af.
Verhouding int./ext. knopen in volle binaire bomen Een binaire boom is vol ( proper, full binary tree ) als elke knoop of twee of geen kinderen heeft. Propositie In een niet-lege volle binaire boom T met n E externe en n I interne knopen geldt: n E = n I + 1 Bewijs. Twee mogelijkheden: 1. T zien als representatie van een knockout-toernooi: extern knoop = team; intern knoop = wedstrijd; aan het einde van ieder wedstrijd valt een team af; een team (dat van de winnaars) valt bij geen wedstrijd af. 2. In stapjes weghalen van elk één externe en één interne knoop, na elk stap een volle binaire boom overhouden. Aan het einde blijft éen externe knoop over.
Linked structure implementatie van algemene bomen Operation Time size, isempty O(1) iterator, positions O(n) replace O(1) root, parent O(1) children(v) O(c v ) isinternal, isexternal, isroot O(1) Runtijden van een linked structure implementatie van een boom met n knopen. Met c v bedoelen we het aantal kinderen van de knoop c v.
Linked structure implementatie van binaire bomen Operation size, isempty iterator, positions replace root, parent, children, left, right, sibling hasleft, hasright, isinternal, isexternal, isroot insertleft, insertright, attach, remove Time O(1) O(n) O(1) O(1) O(1) O(1) Runtijden van een linked structure implementatie van een binaire boom met n knopen.
Array-List implementatie van binaire bomen Operation size, isempty iterator, positions replace root, parent, children, left, right hasleft, hasright, isinternal, isroot Time O(1) O(n) O(1) O(1) O(1) Runtijden van een implementation van binaire bomen met een array-list op een binaire boom T met n knopen.
Opgaven voor het werkcollege testen van basiskennis (zelfstudie): trees: R-7.1, R-7.2, R-7.14, R-7.25, C-7.11 priority queues: R-8.2, R-8.5, R-8.6. werkcollegeopgaven: trees: R-7.3, R-7.4, R-7.6, R-7.10, R-7.15, R-7.21, C-7.25. priority queues: C-8.4, C-8.6.
Woensdag 1. Java Programming Basis 2. Object Oriented Design 3. Arrays, Linked Lists, and Recursion 4. Analysis Tools 5. Stacks and Queues 6. Lists and Iterators 7. Trees 8. Priority Queues 9. Maps and Dictionaries (Skip Lists) 10. Search Trees 11. Sorting, Sets, and Selection 12. Text Processing 13. Graphs 14. Memory
Bedankt voor de aandacht!