DOC PREVIEW
TAMU CSCE 221 - Ch7 Trees handouts

This preview shows page 1-2 out of 5 pages.

Save
View full document
View full document
Premium Document
Do you want full access? Go Premium and unlock all 5 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 5 pages.
Access to all documents
Download any document
Ad free experience
Premium Document
Do you want full access? Go Premium and unlock all 5 pages.
Access to all documents
Download any document
Ad free experience

Unformatted text preview:

2/4/14 1 Chapter 7:Trees Nancy Amato Parasol Lab, Dept. CSE, Texas A&M University Acknowledgement: These slides are adapted from slides provided with Data Structures and Algorithms in C++, Goodrich, Tamassia and Mount (Wiley 2004) Make Money Fast! Stock Fraud Ponzi Scheme Bank Robbery http://parasol.tamu.edu Trees Outline and Reading • Tree Definitions and ADT (§7.1) • Tree Traversal Algorithms for General Trees (preorder and postorder) (§7.2) • BinaryTrees (§7.3) • Traversals of Binary Trees (preorder, inorder, postorder, and Euler Tour) (§7.3.6) • Template method pattern (§7.3.7) • Data structures for trees (§7.1.4 and §7.3.4) • C++ implementation (§7.1.3 and §7.3.2) 2 Trees What is a Tree • In computer science, a tree is an abstract model of a hierarchical structure • A tree consists of nodes with a parent-child relation • Applications: • Organization charts • File systems • Programming environments Computers”R”Us Sales R&D Manufacturing Laptops Desktops US International Europe Asia Canada 3 Trees subtee Tree Terminology • Root: node without parent (A) • Internal node: node with at least one child (A, B, C, F) • Leaf (aka External node): node without children (E, I, J, K, G, H, D) • Ancestors of a node: parent, grandparent, great-grandparent, etc. • Depth of a node: number of ancestors • Height of a tree: maximum depth of any node (3) • Descendant of a node: child, grandchild, great-grandchild, etc. A B D C G H E F I J K • Subtree: tree consisting of a node and its descendants 4 Trees Exercise: Trees • Answer the following questions about the tree shown on the right: • What is the size of the tree (number of nodes)? • Classify each node of the tree as a root, leaf, or internal node • List the ancestors of nodes B, F, G, and A. Which are the parents? • List the descendents of nodes B, F, G, and A. Which are the children? • List the depths of nodes B, F, G, and A. • What is the height of the tree? • Draw the subtrees that are rooted at node F and at node K. A B D C G H E F I J K 5 Trees Tree ADT • We use positions to abstract nodes • Generic methods: • integer size() • boolean isEmpty() • objectIterator elements() • positionIterator positions() • Accessor methods: • position root() • position parent(p) • positionIterator children(p) • Query methods: • boolean isInternal(p) • boolean isLeaf (p) • boolean isRoot(p) • Update methods: • swapElements(p, q) • object replaceElement(p, o) • Additional update methods may be defined by data structures implementing the Tree ADT 62/4/14 2 Trees ∅ A Linked Structure for General Trees • A node is represented by an object storing • Element • Parent node • Sequence of children nodes • Node objects implement the Position ADT B D A C E F B ∅ ∅ A D F ∅ C ∅ E 7 Trees Preorder Traversal • A traversal visits the nodes of a tree in a systematic manner • In a preorder traversal, a node is visited before its descendants • Application: print a structured document Algorithm preOrder(v)!visit(v)!for each child w of v!!preOrder(w)!Make Money Fast! 1. Motivations References 2. Methods 2.1 Stock Fraud 2.2 Ponzi Scheme 1.1 Greed 1.2 Avidity 2.3 Bank Robbery 1 2 3 5 4 6 7 8 9 8 Trees Exercise: Preorder Traversal • In a preorder traversal, a node is visited before its descendants • List the nodes of this tree in preorder traversal order. Algorithm preOrder(v)!visit(v)!for each child w of v!!preOrder (w)!A B D C G H E F I J K 9 Trees Postorder Traversal • In a postorder traversal, a node is visited after its descendants • Application: compute space used by files in a directory and its subdirectories Algorithm postOrder(v)!for each child w of v!!postOrder(w)!visit(v)!cs16/ homeworks/ todo.txt 1K programs/ DDR.java 10K Stocks.java 25K h1c.doc 3K h1nc.doc 2K Robot.java 20K 9 3 1 7 2 4 5 6 8 10 Trees Exercise: Postorder Traversal Algorithm postOrder(v)!for each child w of v! postOrder(w)!visit(v)!• In a postorder traversal, a node is visited after its descendants • List the nodes of this tree in postorder traversal order. A B D C G H E F I J K 11 Trees Binary Tree • A binary tree is a tree with the following properties: • Each internal node has two children • The children of a node are an ordered pair • We call the children of an internal node left child and right child • Alternative recursive definition: a binary tree is either • a tree consisting of a single node, or • a tree whose root has an ordered pair of children, each of which is a binary tree • Applications: • arithmetic expressions • decision processes • searching A B C F G D E H I 122/4/14 3 Trees Arithmetic Expression Tree • Binary tree associated with an arithmetic expression • internal nodes: operators • leaves: operands • Example: arithmetic expression tree for the expression (2 × (a - 1) + (3 × b)) +#×#×#-#2 a 1 3 b 13 Trees Decision Tree • Binary tree associated with a decision process • internal nodes: questions with yes/no answer • leaves: decisions • Example: dining decision Want a fast meal? How about coffee? On expense account? Starbucks Spike’s Al Forno Café Paragon Yes No Yes No Yes No 14 Trees Properties of Binary Trees • Notation n number of nodes l number of leaves i number of internal nodes h height • Properties: • l = i + 1 • n = 2l - 1 • h ≤ i • h ≤ (n - 1)/2 • l ≤ 2h • h ≥ log2 l • h ≥ log2 (n + 1) - 1 15 Trees BinaryTree ADT • The BinaryTree ADT extends the Tree ADT, i.e., it inherits all the methods of the Tree ADT • Additional methods: • position leftChild(p) • position rightChild(p) • position sibling(p) • Update methods may be defined by data structures implementing the BinaryTree ADT 16 Trees A Linked Structure for Binary Trees • A node is represented by an object storing • Element • Parent node • Left child node • Right child node • Node objects implement the Position ADT B D A C E ∅ ∅ ∅ ∅ ∅ ∅ B A D C E ∅ 17 Trees Inorder Traversal • In an inorder


View Full Document

TAMU CSCE 221 - Ch7 Trees handouts

Download Ch7 Trees handouts
Our administrator received your request to download this document. We will send you the file to your email shortly.
Loading Unlocking...
Login

Join to view Ch7 Trees handouts and access 3M+ class-specific study document.

or
We will never post anything without your permission.
Don't have an account?
Sign Up

Join to view Ch7 Trees handouts 2 2 and access 3M+ class-specific study document.

or

By creating an account you agree to our Privacy Policy and Terms Of Use

Already a member?