Presentation is loading. Please wait.

Presentation is loading. Please wait.

Balanced Search Trees Chapter 27 Copyright ©2012 by Pearson Education, Inc. All rights reserved.

Similar presentations


Presentation on theme: "Balanced Search Trees Chapter 27 Copyright ©2012 by Pearson Education, Inc. All rights reserved."— Presentation transcript:

1 Balanced Search Trees Chapter 27 Copyright ©2012 by Pearson Education, Inc. All rights reserved

2 Contents AVL Trees  Single Rotations  Double Rotations  Implementation Details 2-3 Trees  Searching a 2-3 Tree  Adding Entries to a 2-3 Tree  Splitting Nodes During Addition Copyright ©2012 by Pearson Education, Inc. All rights reserved

3 Contents 2-4 Trees  Adding Entries to a 2-4 Tree  Comparing AVL, 2-3, and 2-4 Trees Red-Black Trees  Properties of a Red-Black Tree  Adding Entries to a Red-Black Tree  Java Class Library: The Class TreeMap B-Trees Copyright ©2012 by Pearson Education, Inc. All rights reserved

4 Objectives Perform rotation to restore balance of an AVL tree after addition Search for or add entry to 2-3 tree Search for or add entry to 2-4 tree Form red-black tree from given 2-4 tree Search for or add entry to red-black tree Describe purpose of a B-tree Copyright ©2012 by Pearson Education, Inc. All rights reserved

5 Balance Recall: operations on binary search tree are O(log n)  Tree must be balanced Add and remove operations do not necessarily maintain that balance We seek ways to maintain balance  And thus maintain efficiency Copyright ©2012 by Pearson Education, Inc. All rights reserved

6 AVL Trees Binary search tree that rearranges nodes whenever it becomes unbalanced.  Happens during addition or removal of node Uses  Left rotation  Right rotation  Balanced node – the root of a balanced tree Copyright ©2012 by Pearson Education, Inc. All rights reserved

7 Figure 27-1 After inserting (a) 60; (b) 50; and (c) 20 into an initially empty binary search tree, the tree is not balanced; (d) a corresponding AVL tree rotates its nodes to restore balance Copyright ©2012 by Pearson Education, Inc. All rights reserved

8 Figure 27-2 (a) Adding 80 to the tree in Figure 27-1d does not change the balance of the tree; (b) a subsequent addition of 90 makes the tree unbalanced ; (c) a left rotation restores its balance Copyright ©2012 by Pearson Education, Inc. All rights reserved

9 Figure 27-3 Before and after an addition to an AVL subtree that requires a right rotation to maintain its balance Copyright ©2012 by Pearson Education, Inc. All rights reserved

10 Figure 27-4 Before and after a right rotation restores balance to an AVL tree Copyright ©2012 by Pearson Education, Inc. All rights reserved

11 Figure 27-5 Before and after an addition to an AVL subtree that requires a left rotation to maintain its balance Copyright ©2012 by Pearson Education, Inc. All rights reserved

12 FIGURE 27-6 (a) Adding 70 to the tree in Figure 27-2c destroys its balance; to restore the balance, perform both (b) a right rotation and (c) a left rotation Copyright ©2012 by Pearson Education, Inc. All rights reserved

13 Figure 27-7 Before and after an addition to an AVL subtree that requires both a right rotation and a left rotation to maintain its balance Copyright ©2012 by Pearson Education, Inc. All rights reserved

14 Figure 27-7 Before and after an addition to an AVL subtree that requires both a right rotation and a left rotation to maintain its balance Copyright ©2012 by Pearson Education, Inc. All rights reserved

15 Figure 27-8 (a) The AVL tree in Figure 27-6c after additions that maintain its balance; (b) after an addition that destroys the balance; Copyright ©2012 by Pearson Education, Inc. All rights reserved

16 Figure 27-8 (c) after a left rotation; (d) after a right rotation Copyright ©2012 by Pearson Education, Inc. All rights reserved

17 Figure 27-9 Before and after an addition to an AVL subtree that requires both a left rotation and a right rotation to maintain its balance Copyright ©2012 by Pearson Education, Inc. All rights reserved

18 Figure 27-9 Before and after an addition to an AVL subtree that requires both a left rotation and a right rotation to maintain its balance Copyright ©2012 by Pearson Education, Inc. All rights reserved

19 Double Rotations Double rotation is accomplished by performing two single rotations:  A rotation about node N’s grandchild G (its child’s child)  A rotation about node N’s new child Copyright ©2012 by Pearson Education, Inc. All rights reserved

20 Double Rotations Imbalance at node N of an AVL tree can be corrected by a double rotation if:  Addition occurred in the left subtree of N’s right child (right-left rotation), or  Addition occurred in the right subtree of N’s left child (left-right rotation) Copyright ©2012 by Pearson Education, Inc. All rights reserved

21 Rotation after Addition Following an addition to an AVL tree, temporary imbalance might occur.  Let N be an unbalanced node closest to new leaf  Either a single or double rotation will restore the tree’s balance Note: similar action restores balance after removal Copyright ©2012 by Pearson Education, Inc. All rights reserved

22 FIGURE 27-10 The result of adding 60, 50, 20, 80, 90, 70, 55, 10, 40, and 35 to an initially empty (a) AVL tree; (b) binary search tree Copyright ©2012 by Pearson Education, Inc. All rights reserved

23 Implementation Details Note source code of class AVLTree, Listing 27-1 Listing 27-1  Note private methods  Note public methods  Note method rotateLeftRight is left as an exercise Copyright ©2012 by Pearson Education, Inc. All rights reserved Note: Code listing files must be in same folder as PowerPoint files for links to work Note: Code listing files must be in same folder as PowerPoint files for links to work

24 2-3 Trees A general search tree  Interior nodes must have either two or three children A 2-Node has one data item, s  Has two children  Data s greater than any data in left subtree  Data s less than any data in right subtree Copyright ©2012 by Pearson Education, Inc. All rights reserved

25 2-3 Trees A 3-Node has two data item, s and l  Item s is the smaller  Item l is the larger Has three children  Data that is less than s is in left subtree  Data greater than l is in right subtree  Data between s and l is in middle subtree Copyright ©2012 by Pearson Education, Inc. All rights reserved

26 Figure 27-11 (a) A 2-node; (b) a 3-node Copyright ©2012 by Pearson Education, Inc. All rights reserved

27 Figure 27-12 A 2-3 tree Copyright ©2012 by Pearson Education, Inc. All rights reserved

28 Figure 27-13 An initially empty 2-3 tree after adding (a) 60 and (b) 50; (c), (d) adding 20 causes the 3-node to split Copyright ©2012 by Pearson Education, Inc. All rights reserved

29 Figure 27-14 The 2-3 tree after adding (a) 80; (b) 90; (c) 70 Copyright ©2012 by Pearson Education, Inc. All rights reserved

30 figure 27-15 Adding 55 to the 2-3 tree causes a leaf and then the root to split Copyright ©2012 by Pearson Education, Inc. All rights reserved

31 Figure 27-16 The 2-3 tree after adding (a) 10; (b), (c) 40 Copyright ©2012 by Pearson Education, Inc. All rights reserved

32 Figure 27-17 The 2-3 tree after adding 35 Copyright ©2012 by Pearson Education, Inc. All rights reserved

33 Figure 27-18 Splitting a leaf to accommodate a new entry when the leaf’s parent contains (a) one entry; Copyright ©2012 by Pearson Education, Inc. All rights reserved

34 Figure 27-18 Splitting a leaf to accommodate a new entry when the leaf’s parent contains (b) two entries Copyright ©2012 by Pearson Education, Inc. All rights reserved

35 Figure 27-19 Splitting an internal node to accommodate a new entry Copyright ©2012 by Pearson Education, Inc. All rights reserved

36 Figure 27-20 Splitting the root to accommodate a new entry Copyright ©2012 by Pearson Education, Inc. All rights reserved

37 2-4 Trees Sometimes called a 2-3-4 tree General search tree whose interior nodes must have  Either two, three, or four children  Leaves occur on the same level 4-node contains three data items s, m, and l  Has four children Copyright ©2012 by Pearson Education, Inc. All rights reserved

38 Figure 27-21 A 4-node Copyright ©2012 by Pearson Education, Inc. All rights reserved

39 Figure 27-22 An initially empty 2-4 tree after adding (a) 60; (b) 50; (c) 20 Copyright ©2012 by Pearson Education, Inc. All rights reserved

40 Figure 27-23 The 2-4 tree after (a) splitting the root; (b) adding 80; (c) adding 90 Copyright ©2012 by Pearson Education, Inc. All rights reserved

41 Figure 27-24 The 2-4 tree after (a) splitting a 4-node; (b) adding 70 Copyright ©2012 by Pearson Education, Inc. All rights reserved

42 Figure 27-25 The 2-4 tree after adding (a) 55; (b) 10; (c) 40 Copyright ©2012 by Pearson Education, Inc. All rights reserved

43 Figure 27-26 The 2-4 tree after (a) splitting the leftmost 4-node; (b) adding 35 Copyright ©2012 by Pearson Education, Inc. All rights reserved

44 Figure 27-27 Three balanced search trees obtained by adding 60, 50, 20, 80, 90, 70, 55, 10, 40, and 35: (a) AVL tree; (b) 2-3 tree; (c) 2-4 tree Copyright ©2012 by Pearson Education, Inc. All rights reserved

45 Red-Black Trees Red-black tree is a binary tree that is equivalent to a 2-4 tree. Adding entry to a red-black tree like adding entry to a 2-4 tree  Only one pass from root to leaf is necessary. But is a binary tree  Uses simpler operations to maintain i balance Copyright ©2012 by Pearson Education, Inc. All rights reserved

46 Figure 27-28 Using 2-nodes to represent (a) a 4-node Copyright ©2012 by Pearson Education, Inc. All rights reserved

47 Figure 27-28 Using 2-nodes to represent (b) a 3-node Copyright ©2012 by Pearson Education, Inc. All rights reserved

48 Figure 27-29 A red-black tree that is equivalent to the 2-4 tree in Figure 27-27cFigure 27-27c Copyright ©2012 by Pearson Education, Inc. All rights reserved

49 Properties of a Red-Black Tree The root is black. Every red node has black parent. Any children of red node are black;  Red node cannot have red children. Every path from the root to a leaf contains same number of black nodes. Copyright ©2012 by Pearson Education, Inc. All rights reserved

50 Adding Entries to a Red-Black Tree Adding a leaf  Use black for a new leaf, we increase number of black nodes on paths to that leaf  But this violates fourth property of a red-black tree  Thus, new node must be red Adding or removing entries can change color of various nodes Copyright ©2012 by Pearson Education, Inc. All rights reserved

51 Figure 27-30 The result of adding a new entry e to a one-node red-black tree Copyright ©2012 by Pearson Education, Inc. All rights reserved

52 Figure 27-31 The possible results of adding a new entry e to a two-node red-black tree Copyright ©2012 by Pearson Education, Inc. All rights reserved

53 FIGURE 27-31 The possible results of adding a new entry e to a two-node red-black tree Copyright ©2012 by Pearson Education, Inc. All rights reserved

54 FIGURE 27-31 The possible results of adding a new entry e to a two-node red-black tree Copyright ©2012 by Pearson Education, Inc. All rights reserved

55 FIGURE 27-31 The possible results of adding a new entry e to a two-node red-black tree Copyright ©2012 by Pearson Education, Inc. All rights reserved

56 FIGURE 27-32 The possible results of adding a new entry e to a two-node red-black tree: mirror images of Figure 27-31 Copyright ©2012 by Pearson Education, Inc. All rights reserved

57 FIGURE 27-32 The possible results of adding a new entry e to a two-node red-black tree: mirror images of Figure 27-31 Copyright ©2012 by Pearson Education, Inc. All rights reserved

58 FIGURE 27-32 The possible results of adding a new entry e to a two-node red-black tree: mirror images of Figure 27-31 Copyright ©2012 by Pearson Education, Inc. All rights reserved

59 FIGURE 27-32 The possible results of adding a new entry e to a two-node red-black tree: mirror images of Figure 27-31 Copyright ©2012 by Pearson Education, Inc. All rights reserved

60 Figure 27-33 Splitting a 4-node whose parent is a 2-node in (a) a 2-4 tree; (b) a red-black tree Copyright ©2012 by Pearson Education, Inc. All rights reserved

61 Figure 27-34 Splitting a 4-node that has a 3-node parent within (a) a 2-4 tree; (b) a red-black tree Copyright ©2012 by Pearson Education, Inc. All rights reserved

62 Figure 27-35 Splitting a 4-node that has a red parent within a red-black tree: Case 1 Copyright ©2012 by Pearson Education, Inc. All rights reserved

63 Figure 27-36 Splitting a 4-node that has a red parent within a red-black tree: Case 2 Copyright ©2012 by Pearson Education, Inc. All rights reserved

64 Figure 27-37 Splitting a 4-node that has a red parent within a red-black tree: Case 3 Copyright ©2012 by Pearson Education, Inc. All rights reserved

65 Figure 27-38 Splitting a 4-node that has a red parent within a red-black tree: Case 4 Copyright ©2012 by Pearson Education, Inc. All rights reserved

66 Java Class Library: The Class TreeMap Uses a red-black tree to implement the methods in the interface SortedMap SortedMap extends the interface Map Methods such as get, put, remove, and containsKey are each an O(log n) operation. Copyright ©2012 by Pearson Education, Inc. All rights reserved

67 B-Trees M-way search tree  General tree whose nodes have up to m children each Node that has k - 1 data items and k children is called a k-node Copyright ©2012 by Pearson Education, Inc. All rights reserved

68 B-Trees B-tree of order m is a balanced multiway search tree of order m  The root has either no children or between 2 and m children.  Other interior nodes (nonleaves) have between m/2 and m children each.  All leaves are on the same level Copyright ©2012 by Pearson Education, Inc. All rights reserved

69 End Chapter 27 Copyright ©2012 by Pearson Education, Inc. All rights reserved


Download ppt "Balanced Search Trees Chapter 27 Copyright ©2012 by Pearson Education, Inc. All rights reserved."

Similar presentations


Ads by Google