trees
play

Trees a tree represents a hierarchy - organization structure of a - PDF document

T REES trees binary trees traversals of trees template method pattern data structures for trees Trees 1 Trees a tree represents a hierarchy - organization structure of a corporation Electronics RUs R&D


  1. T REES • trees • binary trees • traversals of trees • template method pattern • data structures for trees Trees 1

  2. Trees • a tree represents a hierarchy - organization structure of a corporation Electronics R’Us R&D Sales Purchasing Manufacturing Domestic International TV CD Tuner Canada S. America Overseas Africa Europe Asia Australia - table of contents of a book student guide overview grading environment programming support code exams homeworks programs Trees 2

  3. Another Example • Unix or DOS/Windows file system /user/rt/courses/ cs016/ cs252/ grades grades homeworks/ programs/ projects/ hw1 hw2 hw3 pr1 pr2 pr3 papers/ demos/ buylow sellhigh market Trees 3

  4. Terminology • A is the root node. • B is the parent of D and E. • C is the sibling of B • D and E are the children of B. • D, E, F, G , I are external node s , or leaves . • A, B, C, H are internal nodes . • The depth ( level ) of E is 2 • The height of the tree is 3 . • The degree of node B is 2 . A B C D E H F G I Property: ( # edges ) = ( #nodes ) − 1 Trees 4

  5. Binary Trees • Ordered tree: the children of each node are ordered. • Binary tree: ordered tree with all internal nodes of degree 2 . • Recursive definition of binary tree: • A binary tree is either - an external node (leaf), or - an internal node (the root ) and two binary trees ( left subtree and right subtree ) Trees 5

  6. Examples of Binary Trees • arithmetic expression + × × 5 4 + + 7 2 × + 2 8 3 + 1 + 4 6 ((((3 × (1 + (4 + 6))) + (2 + 8)) × 5) + ( 4 × (7 + 2))) • river Trees 6

  7. Properties of Binary Trees • (# external nodes ) = (# internal nodes) + 1 • (# nodes at level i ) ≤ 2 i • (# external nodes) ≤ 2 (height) • (height) ≥ log 2 (# external nodes) • (height) ≥ log 2 (# nodes) − 1 • (height) ≤ (# internal nodes) = ( (# nodes) − 1)/2 Level 0 1 2 3 4 Trees 7

  8. The Tree ADT • the nodes of a tree are viewed as positions • generic container methods - size(), isEmpty(), elements(), newContainer() • positional container methods - positions(), replace(p,e), swap(p,q) • query methods - isRoot(p), isInternal(p), isExternal(p) • accessor methods - root(), parent(p), children(p), siblings(p) • update methods (application specific) Container PositionalContainer PositionalSequence InspectableTree Sequence Trees 8

  9. The Binary Tree ADT • extends the tree ADT • accessor methods - leftChild(p), rightChild(p), sibling(p) • update methods - expandExternal(p), removeAboveExternal(p) - other application specific methods • interface hierarchy of positional containers Container PositionalContainer PositionalSequence InspectableTree InspectableBinaryTree Sequence Trees 9

  10. Traversing Trees • preorder traversal Algorithm preOrder(v) “visit” node v for each child w of v do recursively perform preOrder(w) • reading a document from beginning to end Paper Title Abstract § 1 § 2 § 3 References § 1.1 § 1.2 § 2.1 § 2.2 § 2.3 § 3.1 § 3.2 Trees 10

  11. Traversing Trees • postorder traversal Algorithm postOrder(v) for each child w of v do recursively perform postOrder(w) “visit” node v • du (disk usage) command in Unix 5124K /user/rt/courses/ 1K 249K 4874K cs016/ cs252/ 2K 1K 10K 229K 4870K grades grades homeworks/ programs/ projects/ 1K 1K 1K 8K 3K 82K 4787K hw1 hw2 hw3 pr1 pr2 pr3 papers/ demos/ 1K 1K 3K 2K 4K 57K 97K 74K buylow sellhigh market 26K 55K 4786K Trees 11

  12. Evaluating Arithmetic Expressions • specialization of a postorder traversal Algorithm evaluateExpression(v) if v is an external node return the variable stored at v else let o be the operator stored at v x ← evaluateExpression(leftChild(v)) y ← evaluateExpression(rightChild(v)) return x o y 1 − 2 3 / + 4 5 6 7 + × × 6 8 9 10 11 12 13 + − − 3 2 3 16 17 20 21 26 27 3 1 9 5 7 4 Trees 12

  13. Traversing Trees • inorder traversal of a binary tree Algorithm inOrder(v) recursively perform inOrder(leftChild(v)) “visit” node v recursively perform inOrder(rightChild(v)) • printing an arithmetic expression - specialization of an inorder traversal - print “(“ before traversing the left subtree - print “)” after traversing the right subtree + × × 5 4 + + 7 2 × + 2 8 3 + 1 + 4 6 ((((3 × (1 + (4 + 6))) + (2 + 8)) × 5) + ( 4 × (7 + 2))) Trees 13

  14. Euler Tour Traversal • generic traversal of a binary tree • the preorder, inorder, and postorder traversals are special cases of the Euler tour traversal • “walk around” the tree and visit each node three times: - on the left - from below - on the right − / + + × × 6 + − − 3 2 3 3 1 9 5 7 4 Trees 14

  15. Template Method Pattern • generic computation mechanism that can be specialized by redefining certain steps • implemented by means of an abstract Java class with methods that can be redefined by it subclasses public abstract class BinaryTreeTraversal { protected BinaryTree tree; ... protected Object traverseNode(Position p) { TraversalResult r = initResult(); if (tree.isExternal(p)) { external(p, r); } else { left(p, r); r.leftResult = traverseNode(tree.leftChild(p)); below(p, r); r.rightResult = traverseNode(tree.rightChild(p)); right(p, r); } return result(r); } Trees 15

  16. Specializing the Generic Binary Tree Traversal • printing an arithmetic expression public class PrintExpressionTraversal extends BinaryTreeTraversal { ... protected void external(Position p, TraversalResult r) { System.out.print(p.element()); } protected void left(Position p, TraversalResult r) { System.out.print("("); } protected void below(Position p, TraversalResult r) { System.out.print(p.element()); } protected void right(Position p, TraversalResult r) { System.out.print(")"); } } Trees 16

  17. Linked Data Structure for Binary Trees ∅ root 5 size ∅ ∅ ∅ ∅ ∅ ∅ Baltimore Chicago New York Providence Seattle Trees 17

  18. Representing General Trees • tree T A C B D G E F • binary tree T' representing T A B E C F D G Trees 18

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend