Trees
Terminology (continued) Traversals
February 10, 2020 Cinda Heeren / Andy Roth / Geoffrey Tien 1
Trees Terminology (continued) Traversals February 10, 2020 Cinda - - PowerPoint PPT Presentation
Trees Terminology (continued) Traversals February 10, 2020 Cinda Heeren / Andy Roth / Geoffrey Tien 1 Measuring trees The height of a node v is the length of the longest path from v to a leaf The height of the tree is the height of
February 10, 2020 Cinda Heeren / Andy Roth / Geoffrey Tien 1
Cinda Heeren / Andy Roth / Geoffrey Tien 2 February 10, 2020
Cinda Heeren / Andy Roth / Geoffrey Tien 3
A C F B D E H G I J Level 1 Level 2 Level 3 Height of tree is 3 Height of node B is 2 Depth of node E is 2
February 10, 2020
Cinda Heeren / Andy Roth / Geoffrey Tien 4 February 10, 2020
Cinda Heeren / Andy Roth / Geoffrey Tien 5
01 11 12 21 22 23 24 31 32 33 34 35 36 37 38 Bottom level has 2ℎ nodes, i.e. just over half
February 10, 2020
Cinda Heeren / Andy Roth / Geoffrey Tien 6
A C F B D E
February 10, 2020
Cinda Heeren / Andy Roth / Geoffrey Tien 7
February 10, 2020
Cinda Heeren / Andy Roth / Geoffrey Tien 8
void inOrder(Node* nd) { if (nd != nullptr) { inOrder(nd->leftchild); visit(nd); inOrder(nd->rightchild); } }
The visit function would do whatever the purpose
node).
February 10, 2020
Cinda Heeren / Andy Roth / Geoffrey Tien 9
visit(nd);
1 2 3 4 5 6 7 8
preOrder(nd->leftchild); preOrder(nd->rightchild);
visit preOrder(left) preOrder(right) visit preOrder(left) preOrder(right) visit preOrder(left) preOrder(right) visit preOrder(left) preOrder(right) visit preOrder(left) preOrder(right) visit preOrder(left) preOrder(right) visit preOrder(left) preOrder(right)
17 13 9 11 16 27 20 39
February 10, 2020
Cinda Heeren / Andy Roth / Geoffrey Tien 10
visit(nd);
8 4 2 1 3 7 5 6
postOrder(nd->leftchild); postOrder(nd->rightchild);
visit postOrder(left) postOrder(right)
17 13 9 11 16 27 20 39
visit postOrder(left) postOrder(right) visit postOrder(left) postOrder(right) visit postOrder(left) postOrder(right) visit postOrder(left) postOrder(right) visit postOrder(left) postOrder(right) visit postOrder(left) postOrder(right)
February 10, 2020
February 10, 2020 Cinda Heeren / Andy Roth / Geoffrey Tien 11
visit(nd);
17 9 27 6 16 20 31 12
inOrder(nd->leftchild); inOrder(nd->rightchild);
39 Note to Geoff: show the trick with the dots!
February 10, 2020 Cinda Heeren / Andy Roth / Geoffrey Tien 12
41 33 87 21 74 36 45 78 25 Use some ADT to support this?
February 10, 2020 Cinda Heeren / Andy Roth / Geoffrey Tien 13
What is the height of this tree? What is the height of this tree? What is the height of this tree?
int Height(Node* nd) { if (nd == nullptr) // empty tree return _____; else return _______________________; }
Which type of traversal is this? Running time?
February 10, 2020 Cinda Heeren / Andy Roth / Geoffrey Tien 14