Presentation is loading. Please wait.

Presentation is loading. Please wait.

1 Trees. 2 Trees Trees. Binary Trees Tree Traversal.

Similar presentations


Presentation on theme: "1 Trees. 2 Trees Trees. Binary Trees Tree Traversal."— Presentation transcript:

1 1 Trees

2 2 Trees Trees. Binary Trees Tree Traversal

3 3 Trees

4 4 Trees

5 5 Tree Terminology A non-empty tree has a root node (e.g.node a). Every other node can be reached from the root via a unique path (e.g. a-d-f). a is the parent of nodes b and c because there is an edge going from a down to each. Moreover, b and c are children of a. dagbecf root parent of g child of a

6 6 Tree Terminology The descendant of a is (e and c), nodes that can be reached by paths from a. The ancestor of e is (a and c), nodes found on the path from e to a. Nodes (b, d, and e) are leaf nodes (they have no children). Each of the nodes a and c has at least one child and is an internal node. caebd Siblings

7 7 Trees

8 8 Binary Trees Can be implemented using arrays, structs and pointers Used in problems dealing with: Searching Hierarchy Ancestor/descendant relationship Classification

9 9 Tree Terminology Each node in the tree (except leaves) may have one or more subtrees For a tree with n nodes there are n-1 edges abdecfg

10 10 The Binary Tree A binary tree is a tree in which a parent has at most two children. It consists of a root and two disjoint subtrees (left and right). The root is at level (L = 1) and the height h = maximum level The maximum number of nodes in level L is abdecf Level 1 Level 2 Level 3 A binary tree of height h = 3 Left Right g

11 11 The Full Binary Tree A binary tree is full iff the number of nodes in level L is 2 L-1 abdecfg

12 12 The Full Binary Tree A full binary tree of height h has n nodes, where

13 13 The Balanced Tree A balanced binary tree has the property that the heights of the left and right subtrees differ at most by one level. i.e. |h L – h R | ≤ 1 A Full tree is also a balanced tree hLhL hRhR

14 14 A binary tree is Complete iff the number of Nodes at level 1 <= L <= h-1 is 2 L-1 and leaf nodes at level h occupy the leftmost positions in the tree i.e. all levels are filled except the rightmost of the last level. Complete Binary Tree Missing Leaves

15 15 Complete Binary Tree

16 16 Complete Binary Tree A complete binary tree can be efficiently implemented as an array, where a node at index i has children at indexes 2i+1 and 2i+2 and a parent at index (i-1)/2 DE BC A 1 23 4 5 ABCDE

17 17 Complete Binary Tree

18 18 A binary tree is a recursive structure e.g. it can be defined recursively as: if (not empty tree) 1. It has a root 2. It has a (Left Subtree) 3. It has a (Right Subtree) Recursive structure suggests recursive processing of trees (e.g. Traversal) Binary Tree as a Recursive Structure bc a de f

19 19 Binary Tree as a Recursive Structure b,d,ec,f a de f a,b,c,d,e,f bc Empty

20 20 2. Tree Traversal Traversal is to visit every node ( to display, process, …) exactly once It can be done recursively There are 3 different binary tree traversal orders: Pre-Order: Root is visited before its two subtrees In-Order: Root is visited in between its two subtrees Post-Order:Root is visited after its two subtrees

21 21 Pre-Order Traversal Algorithm: PreOrder ( tree ) { if ( not empty tree) { Visit (root); PreOrder (left subtree); PreOrder (right subtree); } The resulting visit order = {a} {b, d, e} {c, f } bc a de f 1 2 3 5 6 4

22 22 Pre-Order Traversal Pre-Order Traversal is also called Depth-First traversal 1 25 3467

23 23 In-Order Traversal Algorithm: InOrder ( tree ) { if ( not empty tree) { InOrder (left subtree); Visit (root); InOrder (right subtree); } The resulting visit order = {d, b, e} {a} {f, c } bc a de f 4 2 1 6 5 3

24 24 Post-Order Traversal Algorithm: PostOrder ( tree ) { if ( not empty tree) { PostOrder (left subtree); PostOrder (right subtree); Visit (root); } The resulting visit order = {d, e, b} {f, c } {a} bc a de f 6 3 1 5 4 2

25 25 Example: Expression Tree The expression A – B * C + D can be represented as a tree. In-Order traversal gives: A – B * C + D This is the infix representation Pre-Order traversal gives: + - A * B C D This is the prefix representation Post-Order traversal gives: A B C * - D + This is the postfix (RPN) representation - D + A* B C

26 26 Exercise : Assume there is a binary tree with the following traversal Preorder traversal sequence: F, B, A, D, C, E, G, I, H Inorder traversal sequence: A, B, C, D, E, F, G, H, I Can you draw the binary tree ?

27 27 Binary Search Tree :

28 28 Binary Search Tree :

29 29 Binary Search Tree :

30 30 Binary Search Tree :

31 31 Inserting in Binary Search Tree Insert (tree, new_item) if (tree is empty) insert new item as root; else if (root key matches new_item) skip insertion; (duplicate key) else if (new_item is smaller than root) insert in left sub-tree; elseinsert in right sub-tree;

32 32 Inserting in Binary Search Tree Insert: 40,20,10,50,65,45,30

33 33 Deleting from a Binary Search Tree

34 34 Deleting from a Binary Search Tree

35 35 Deleting from a Binary Search Tree

36 36 Deleting from a Binary Search Tree

37 37 Deleting from a Binary Search Tree

38 38 Deleting from a Binary Search Tree

39 39 Deleting from a Binary Search Tree

40 40 Deleting from a Binary Search Tree

41 41 Deleting from a Binary Search Tree

42 42 Deleting from a Binary Search Tree

43 43 Deleting from a Binary Search Tree


Download ppt "1 Trees. 2 Trees Trees. Binary Trees Tree Traversal."

Similar presentations


Ads by Google