Presentation is loading. Please wait.

Presentation is loading. Please wait.

CH 7 : TREE ACKNOWLEDGEMENT: THESE SLIDES ARE ADAPTED FROM SLIDES PROVIDED WITH DATA STRUCTURES AND ALGORITHMS IN C++, GOODRICH, TAMASSIA AND MOUNT (WILEY.

Similar presentations


Presentation on theme: "CH 7 : TREE ACKNOWLEDGEMENT: THESE SLIDES ARE ADAPTED FROM SLIDES PROVIDED WITH DATA STRUCTURES AND ALGORITHMS IN C++, GOODRICH, TAMASSIA AND MOUNT (WILEY."— Presentation transcript:

1 CH 7 : TREE ACKNOWLEDGEMENT: THESE SLIDES ARE ADAPTED FROM SLIDES PROVIDED WITH DATA STRUCTURES AND ALGORITHMS IN C++, GOODRICH, TAMASSIA AND MOUNT (WILEY 2004) AND SLIDES FROM NANCY M. AMATO 1

2 OUTLINE General Trees (Ch. 7.1) Binary Trees (Ch. 7.3) Tree Traversals (Ch. 7.2) 2

3 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 3 Computers”R”Us SalesR&DManufacturing LaptopsDesktops US International EuropeAsiaCanada

4 FORMAL DEFINITION OF TREE 4

5 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.  Siblings of a node: Any node which shares a parent  Descendant of a node: child, grandchild, great- grandchild, etc. 5 A B D C G H E F I J K

6 EXERCISE Answer the following questions about the tree shown on the right:  Classify each node of the tree as a root, leaf, or internal node  List the ancestors of nodes 3, 7, 8, and 1. Which are the parents?  List the descendants of nodes 3, 7, 8, and 1. Which are the children? 6 1 243 78 5 6 9 10 11

7 TREE TERMINOLOGY  Depth of a node: number of ancestors  Height of a tree: maximum depth of any node (3) 7 A B D C G H E F I J K

8 EXERCISE Answer the following questions about the tree shown on the right:  List the depths of nodes 3, 7, 8, and 1.  What is the height of the tree? 8 1 243 78 5 6 9 10 11

9 TREE TERMINOLOGY 9 subtee A B D C G H E F I J K

10 EXERCISE  Draw the subtrees that are rooted at node 2 and at node 3. 10 1 243 78 5 6 9 11

11 TREE ADT 11

12 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 12 B D A CE F  B  ADF  C  E

13 BINARY TREE 13

14 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 14 A BC F G D E H I

15 TREE PROPERTIES 15

16 PROOF BY INDUCTION  Three parts:  Base Cases  Inductive hypothesis  Proof 16 subtee

17 BINARY TREE TERMINOLOGY  Full/Proper Tree: All internal node has 2 children  Improper tree: Each internal node has 1 or 2 children. 17

18 EXERCISE  State whether each of these trees are proper, improper, complete 18 A B C D

19 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)) 19    2 a1 3b

20 DECISION TREE  Binary tree associated with a decision process  Internal nodes: questions with yes/no answer  Leaves: decisions  Example: dining decision 20 Want a fast meal? How about coffee?On expense account? StarbucksSpike’sAl FornoCafé Paragon Yes No YesNoYesNo

21 BINARY TREE ADT  Update methods may also be defined by data structures implementing the Binary Tree ADT 21

22 A LINKED STRUCTURE FOR BINARY TREE STRUCTURE  A node is represented by an object storing  Element  Parent node  Left child node  Right child node 22 B D A CE   B AD CE 

23 TREE TRAVERSALS 23

24 PREORDER TRAVERSALS  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 24 Make Money Fast! 1. MotivationsReferences2. Methods 2.1 Stock Fraud 2.2 Ponzi Scheme 1.1 Greed1.2 Avidity 2.3 Bank Robbery 1 2 3 5 4 678 9

25 EXERCISE  In a preorder traversal, a node is visited before its descendants  List the nodes of this tree in preorder traversal order. 25 A B D C G H E F I J K

26 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 26 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 456 8

27 EXERCISE  In a postorder traversal, a node is visited after its descendants  List the nodes of this tree in postorder traversal order. 27 A B D C G H E F I J K

28 INORDER TRAVERSAL – BINARY TREE 28 3 1 2 5 6 79 8 4

29 EXERCISE In an inorder traversal a node is visited after its left subtree and before its right subtree List the nodes of this tree in inorder traversal order. 29 A BC G H E F I J

30 EXERCISE 30

31 APPLICATION PRINT ARITHMETIC EXPRESSIONS  Specialization of an inorder traversal  print operand or operator when visiting node  print “(“ before traversing left subtree  print “)“ after traversing right subtree 31    2 a1 3b ((2  ( a  1))  (3  b))

32 APPLICATION EVALUATE ARITHMETIC EXPRESSIONS  Specialization of a postorder traversal  recursive method returning the value of a subtree  when visiting an internal node, combine the values of the subtrees 32    2 51 32

33 EXERCISE  Draw an expression tree that has  Four leaves, storing the values 1, 5, 6, and 7  3 internal nodes, storing operations +, -, *, / operators can be used more than once, but each internal node stores only one  The value of the root is 21 33

34 EULER TOUR TRAVERSAL  Generic traversal of a binary tree  Includes as special cases the preorder, postorder and inorder traversals  Walk around the tree and visit each node three times:  on the left (preorder)  from below (inorder)  on the right (postorder) 34    2 51 32 L B R 

35 EULER TOUR TRAVERSAL 35    2 51 32 L B R 

36 APPLICATION PRINT ARITHMETIC EXPRESSIONS  Specialization of an Euler Tour traversal  Left-visit: if node is internal, print “(”  Bottom-visit: print value or operator stored at node  Right-visit: if node is internal, print “)” 36    2 a1 3b ((2  ( a  1))  (3  b))


Download ppt "CH 7 : TREE ACKNOWLEDGEMENT: THESE SLIDES ARE ADAPTED FROM SLIDES PROVIDED WITH DATA STRUCTURES AND ALGORITHMS IN C++, GOODRICH, TAMASSIA AND MOUNT (WILEY."

Similar presentations


Ads by Google