Presentation is loading. Please wait.

Presentation is loading. Please wait.

1. General Trees 2. Binary Search Trees 3. AVL Trees 4. Heap Trees.

Similar presentations


Presentation on theme: "1. General Trees 2. Binary Search Trees 3. AVL Trees 4. Heap Trees."— Presentation transcript:

1

2 1. General Trees 2. Binary Search Trees 3. AVL Trees 4. Heap Trees

3  Insertion ◦ FIFO ◦ LIFO ◦ Key-sequenced Insertion  Deletion  Changing a General Tree into a Binary Tree

4 Given the parent Node a new node may be inserted as  FIFO

5 Data Structures: A Pseudocode Approach with C 5 First in-first out (FIFO) insertion

6 Given the parent Node a new node may be inserted as FIFO LIFO Insertion

7 Data Structures: A Pseudocode Approach with C 7 Last in-first out (LIFO) insertion

8 Given the parent Node a new node may be inserted as FIFO LIFO Key-sequenced Insertion Insertion

9 Data Structures: A Pseudocode Approach with C 9 Key-sequenced insertion

10  Insertion ◦ FIFO ◦ LIFO ◦ Key-sequenced Insertion  Deletion  Changing a General Tree into a Binary Tree

11  For general trees nodes to be deleted are restricted to be “leaves”  Otherwise a node maybe “purged”, i.e. a node is deleted along with all its children

12  Insertion ◦ FIFO ◦ LIFO ◦ Key-sequenced Insertion  Deletion  Changing a General Tree into a Binary Tree

13  Changing the meaning of the two pointers:  Leftchild …..first child  Rightchild ….. Next siblings

14 Data Structures: A Pseudocode Approach with C 14 Changing a General Tree to a Binary Tree

15 Data Structures: A Pseudocode Approach with C 15 Changing a General Tree to a Binary Tree

16 Data Structures: A Pseudocode Approach with C 16 Changing a General Tree to a Binary Tree

17 1. General Trees 2. Binary Search Trees 3. AVL Trees 4. Heap Trees

18  Basic Concepts  BST Operations  Threaded Trees

19  All items in left subtree < root  All items in right subtree > root

20 A binary search tree Not a binary search tree

21 Two binary search trees representing the same set:

22  Basic Concepts  BST Operations  Threaded Trees

23  Traversal  Search ◦ Smallest ……….. ? ◦ Largest …………? ◦ Specific element  Insertion  Deletion

24  Print out all the keys in sorted order Inorder: 2, 3, 4, 6, 7, 9, 13, 15, 17, 18, 20

25  Traversal  Search ◦ Smallest ……….. ? ◦ Largest …………? ◦ Specific element  Insertion  Deletion

26  Return the node containing the smallest element in the tree  Start at the root and goes left/right as long as there is a left/right child. The stopping point is the smallest/largest element  Time complexity = O(height of the tree)

27  If we are searching for 15, then we are done.  If we are searching for a key < 15, then we should search in the left subtree.  If we are searching for a key > 15, then we should search in the right subtree.

28 Searching BST

29  Traversal  Search ◦ Smallest ……….. ? ◦ Largest …………? ◦ Specific element  Insertion  Deletion

30  Proceed down the tree as you would with a find  If X is found, do nothing (or update something)  Otherwise, insert X at the last spot on the path traversed  Time complexity = O(height of the tree)

31  Traversal  Search ◦ Smallest ……….. ? ◦ Largest …………? ◦ Specific element  Insertion  Deletion

32  When we delete a node, we need to consider how we take care of the children of the deleted node.  This has to be done such that the property of the search tree is maintained.

33 Three cases: (1) the node is a leaf ◦ Delete it immediately (2) the node has one sub-tree (right or left) ◦ Adjust a pointer from the parent to bypass that node

34 (3 ) the node has 2 children ◦ replace the key of that node with the minimum element at the right subtree (or the maximum element at the left subtree) ◦ delete the minimum element  Has either no child or only right child because if it has a left child, that left child would be smaller and would have been chosen. So invoke case 1 or 2.  Time complexity = O(height of the tree)

35

36  Basic Concepts  BST Operations  Threaded Trees

37  Sparing recursion and stack  Making use of null right child of leaves to point to next node

38 1. General Trees 2. Binary Search Trees 3. AVL Trees 4. Heap Trees

39  Properties  Operations

40  It is a balanced binary tree (definition of Russian mathematicians Adelson-Velskii and Landis)  The height of its sub-trees differs by no more than one (its balance factor is -1, 0, or 1), and its subtrees are also balanced.

41  A sub tree is called  Left high (LH) if its balance is 1  Equally high (EH) if it is 0  Right high (RH) if it is -1

42  Insertion and deletion are same as in BST  If unbalance occurs corresponding rotations must be performed to restore balance

43  Steps: ◦ Check if case is case 1 or 2 of the following and act accordingly ◦ Case 1 :  tree is left high &  out-of-balance is created by a adding node to the left of the left sub-tree ◦ …… One right rotation is needed  Rotate out-of-balance node right

44 h h hh h h+1h+2 h+1 Case 1 *  Tree is left balanced  unbalance is caused by node on the left of left sub-tree

45 ◦ Case 2 :  tree is left high  out-of-balance is created by a adding node to the right of the left sub-tree ◦ …… Two rotations are needed:  Move from bottom of left sub-tree upwards till an unbalanced node is found and rotate it left  Rotate left sub-tree right

46 h+2h+1 Add node to right of left balanced subtree  First rotation.. Left rotation of unbalanced node c  Second rotation … Right rotation of left sub-tree g h h hh h h+1 h+2 h+1

47


Download ppt "1. General Trees 2. Binary Search Trees 3. AVL Trees 4. Heap Trees."

Similar presentations


Ads by Google