Trees • Binary Trees • Traversals of Trees • Template Method Pattern • Data

Trees • Binary Trees • Traversals of Trees • Template Method Pattern • Data

TREES • trees • binary trees • traversals of trees • template method pattern • data structures for trees Trees 1 Trees •atree 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 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 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 nodes, 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 F G H I Property: (# edges) = (#nodes) − 1 Trees 4 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: •Abinary tree is either -anexternal node (leaf), or -aninternal node (the root) and two binary trees (left subtree and right subtree) Trees 5 Examples of Binary Trees • arithmetic expression + × × + 5 4 + × + 7 2 3 + 2 8 1 + 4 6 ((((3 × (1 + (4 + 6))) + (2 + 8)) × 5) + ( 4 × (7 + 2))) •river Trees 6 Properties of Binary Trees •(# external nodes ) = (# internal nodes) + 1 •(# nodes at level i) ≤ 2 i •(# external nodes) ≤ 2 (height) ≥ •(height) log2 (# external nodes) ≥ − •(height) log2 (# nodes) 1 •(height) ≤ (# internal nodes) = ((# nodes) − 1)/2 Level 0 1 2 3 4 Trees 7 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 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 Sequence InspectableBinaryTree Trees 9 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 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 homeworks/ programs/ projects/ grades 8K 1K 1K 1K 3K 82K 4787K hw1 hw2 hw3 pr1 pr2 pr3 papers/ demos/ 3K 2K 4K 57K 97K 74K 1K 1K buylow sellhigh market 26K 55K 4786K Trees 11 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 − 23 / + 4567 × + × 6 8 9 10 11 12 13 + 3 − 2 3 − 16 17 20 21 26 27 3 1 9 5 7 4 Trees 12 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 3 + 2 8 1 + 4 6 ((((3 × (1 + (4 + 6))) + (2 + 8)) × 5) + ( 4 × (7 + 2))) Trees 13 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 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 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 Linked Data Structure for Binary Trees ∅ root 5 size ∅ ∅ ∅ ∅ ∅ ∅ Baltimore Chicago New York Providence Seattle Trees 17 Representing General Trees • tree T A B C D E F G • binary tree T' representing T A B E C F D G Trees 18.

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    18 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us