1 / 20

Bomen

Bomen. Toepassingen Terminologie Eigenschappen Stellingen Implementatie Doorlopen van bomen Expressie bomen. Toepassingen. Zoekproblemen Bijv. puzzels en spellen Opslag van expressies Rekenkundige expressies Ontleden van syntactische structuren Bijv. XML-document. Terminologie.

brinda
Download Presentation

Bomen

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Bomen • Toepassingen • Terminologie • Eigenschappen • Stellingen • Implementatie • Doorlopen van bomen • Expressie bomen

  2. Toepassingen • ZoekproblemenBijv. puzzels en spellen • Opslag van expressies • Rekenkundige expressies • Ontleden van syntactische structurenBijv. XML-document

  3. Terminologie • boom / tree • wortel / root • knoop / node • boog / kant / arc • blad / leave • volledige boom / fully tree

  4. Terminologie • inwendige knoop / interior node • ouder /parent • kind /child / descendant • hoogte / height • subboom / subtree • pad / path

  5. Terminologie

  6. Terminologie Hoogte van een boom is het grootste aantal bogen dat een pad van de wortel naar een blad bevat. In het voorbeeld is de hoogte dus 3. Binaire boom: elke knoop heeft ten hoogste twee kinderen.

  7. Eigenschappen • Er is slechts één pad van de wortel naareen willekeurige knoop. • Er is slechts één knoop die geen ouderheeft.

  8. Stellingen • Een volledige boom met hoogte n heeft 2nbladeren. • Een volledige boom met hoogte n heeft2n+1 -1 knopen.

  9. Geordende binaire boom

  10. Implementatie class Node { private Node left, right; // recursieve structuur private int number; Node(int getal) // creatie van een blad { number = getal; left = right = null; } }

  11. Toevoegen Een nieuwe knoop wordt als blad toegevoegd. Voorbeeld voeg 7 toe.

  12. Toevoegen

  13. Toevoegen 7 toevoegen aan onderstaande boom gebeurt recursief.

  14. Toevoegen void add(int getal) { if (getal < number) if (left == null) left = new Node(getal); else left.add(getal); else // analoog: plaats getal in rechtersubboom }

  15. Doorlopen • Pre-order10 8 5 9 14 12 • In-order5 8 9 10 12 14 • Postorder 5 9 8 12 14 10

  16. Doorlopen void preOrder() { System.out.print(number +’’ ”); if (links != null) links.preOrder(); if (rechts != null) rechts.preOrder(); }

  17. Doorlopen void inOrder() { if (links != null) links.inOrder(); System.out.print(number +’’ ”); if (rechts != null) rechts.inOrder(); }

  18. Expressie bomen 3 + 5 (3 + 5) * 7 pre-order: * + 3 5 7 in-order: 3 + 5 * 7 post-order: 3 5 + 7 *

  19. Expressie bomen 3 + (5 * 7) class Expr { private Expr left, right; private char operator; private int value; }

  20. Expressie bomen Evaluatie van de expressie gebeurt recursief. De creatie van de boom gebeurt m.b.v. de tools JLex en Byacc.

More Related