Top Banner
Binary Search Trees Data Structures & Problem Solving Using JAVA Second Edition Mark Allen Weiss Chapter 19 (continued) © 2002 Addison Wesley
22

Binary Search Trees Chapter 19 - University of North Floridakmartin/cop3530/weiss/Ch19a_Weiss.pdf · Using the size data member to implement findKth ... is an outside grandchild.

Aug 10, 2018

Download

Documents

dangthuan
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Binary Search Trees Chapter 19 - University of North Floridakmartin/cop3530/weiss/Ch19a_Weiss.pdf · Using the size data member to implement findKth ... is an outside grandchild.

Binary Search Trees

Data Structures & Problem SolvingUsing JAVA

Second Edition

Mark Allen Weiss

Chapter 19(continued)

© 2002 Addison Wesley

Page 2: Binary Search Trees Chapter 19 - University of North Floridakmartin/cop3530/weiss/Ch19a_Weiss.pdf · Using the size data member to implement findKth ... is an outside grandchild.

Figure 19.1Two binary trees: (a) a search tree; (b) not a search tree

Data Structures & Problem Solving using JAVA/2E Mark Allen Weiss © 2002 Addison Wesley

Page 3: Binary Search Trees Chapter 19 - University of North Floridakmartin/cop3530/weiss/Ch19a_Weiss.pdf · Using the size data member to implement findKth ... is an outside grandchild.

Figure 19.2Binary search trees (a) before and (b) after the insertion of 6

Data Structures & Problem Solving using JAVA/2E Mark Allen Weiss © 2002 Addison Wesley

Page 4: Binary Search Trees Chapter 19 - University of North Floridakmartin/cop3530/weiss/Ch19a_Weiss.pdf · Using the size data member to implement findKth ... is an outside grandchild.

Figure 19.3Deletion of node 5 with one child: (a) before and (b) after

Data Structures & Problem Solving using JAVA/2E Mark Allen Weiss © 2002 Addison Wesley

Page 5: Binary Search Trees Chapter 19 - University of North Floridakmartin/cop3530/weiss/Ch19a_Weiss.pdf · Using the size data member to implement findKth ... is an outside grandchild.

Figure 19.4Deletion of node 2 with two children: (a) before and (b) after

Data Structures & Problem Solving using JAVA/2E Mark Allen Weiss © 2002 Addison Wesley

Page 6: Binary Search Trees Chapter 19 - University of North Floridakmartin/cop3530/weiss/Ch19a_Weiss.pdf · Using the size data member to implement findKth ... is an outside grandchild.

Figure 19.13Using the size data member to implement findKth

Data Structures & Problem Solving using JAVA/2E Mark Allen Weiss © 2002 Addison Wesley

Page 7: Binary Search Trees Chapter 19 - University of North Floridakmartin/cop3530/weiss/Ch19a_Weiss.pdf · Using the size data member to implement findKth ... is an outside grandchild.

Figure 19.19(a) The balanced tree has a depth of log N; (b) the unbalanced tree has adepth of N – 1.

Data Structures & Problem Solving using JAVA/2E Mark Allen Weiss © 2002 Addison Wesley

Page 8: Binary Search Trees Chapter 19 - University of North Floridakmartin/cop3530/weiss/Ch19a_Weiss.pdf · Using the size data member to implement findKth ... is an outside grandchild.

Figure 19.20Binary search trees that can result from inserting a permutation 1, 2, and 3; thebalanced tree shown in part (c) is twice as likely to result as any of the others.

Data Structures & Problem Solving using JAVA/2E Mark Allen Weiss © 2002 Addison Wesley

Page 9: Binary Search Trees Chapter 19 - University of North Floridakmartin/cop3530/weiss/Ch19a_Weiss.pdf · Using the size data member to implement findKth ... is an outside grandchild.

Figure 19.21Two binary search trees: (a) an AVL tree; (b) not an AVL tree (unbalanced nodesare darkened)

Data Structures & Problem Solving using JAVA/2E Mark Allen Weiss © 2002 Addison Wesley

Page 10: Binary Search Trees Chapter 19 - University of North Floridakmartin/cop3530/weiss/Ch19a_Weiss.pdf · Using the size data member to implement findKth ... is an outside grandchild.

Figure 19.22Minimum tree of height H

Data Structures & Problem Solving using JAVA/2E Mark Allen Weiss © 2002 Addison Wesley

Page 11: Binary Search Trees Chapter 19 - University of North Floridakmartin/cop3530/weiss/Ch19a_Weiss.pdf · Using the size data member to implement findKth ... is an outside grandchild.

Figure 19.23Single rotation to fix case 1

Data Structures & Problem Solving using JAVA/2E Mark Allen Weiss © 2002 Addison Wesley

Page 12: Binary Search Trees Chapter 19 - University of North Floridakmartin/cop3530/weiss/Ch19a_Weiss.pdf · Using the size data member to implement findKth ... is an outside grandchild.

Figure 19.25Single rotation fixes an AVL tree after insertion of 1.

Data Structures & Problem Solving using JAVA/2E Mark Allen Weiss © 2002 Addison Wesley

Page 13: Binary Search Trees Chapter 19 - University of North Floridakmartin/cop3530/weiss/Ch19a_Weiss.pdf · Using the size data member to implement findKth ... is an outside grandchild.

Figure 19.26Symmetric single rotation to fix case 4

Data Structures & Problem Solving using JAVA/2E Mark Allen Weiss © 2002 Addison Wesley

Page 14: Binary Search Trees Chapter 19 - University of North Floridakmartin/cop3530/weiss/Ch19a_Weiss.pdf · Using the size data member to implement findKth ... is an outside grandchild.

Figure 19.28Single rotation does not fix case 2.

Data Structures & Problem Solving using JAVA/2E Mark Allen Weiss © 2002 Addison Wesley

Page 15: Binary Search Trees Chapter 19 - University of North Floridakmartin/cop3530/weiss/Ch19a_Weiss.pdf · Using the size data member to implement findKth ... is an outside grandchild.

Figure 19.29Left–right double rotation to fix case 2

Data Structures & Problem Solving using JAVA/2E Mark Allen Weiss © 2002 Addison Wesley

Page 16: Binary Search Trees Chapter 19 - University of North Floridakmartin/cop3530/weiss/Ch19a_Weiss.pdf · Using the size data member to implement findKth ... is an outside grandchild.

Figure 19.30Double rotation fixes AVL tree after the insertion of 5.

Data Structures & Problem Solving using JAVA/2E Mark Allen Weiss © 2002 Addison Wesley

Page 17: Binary Search Trees Chapter 19 - University of North Floridakmartin/cop3530/weiss/Ch19a_Weiss.pdf · Using the size data member to implement findKth ... is an outside grandchild.

Figure 19.31Right–Left double rotation to fix case 3.

Data Structures & Problem Solving using JAVA/2E Mark Allen Weiss © 2002 Addison Wesley

Page 18: Binary Search Trees Chapter 19 - University of North Floridakmartin/cop3530/weiss/Ch19a_Weiss.pdf · Using the size data member to implement findKth ... is an outside grandchild.

Figure 19.34A red–black tree: The insertion sequence is 10, 85, 15, 70, 20, 60, 30, 50, 65, 80, 90,40, 5, and 55 (shaded nodes are red).

Data Structures & Problem Solving using JAVA/2E Mark Allen Weiss © 2002 Addison Wesley

Page 19: Binary Search Trees Chapter 19 - University of North Floridakmartin/cop3530/weiss/Ch19a_Weiss.pdf · Using the size data member to implement findKth ... is an outside grandchild.

Figure 19.35If S is black, a single rotation between parent and grandparent, with appropriatecolor changes, restores property 3 if X is an outside grandchild.

Data Structures & Problem Solving using JAVA/2E Mark Allen Weiss © 2002 Addison Wesley

Page 20: Binary Search Trees Chapter 19 - University of North Floridakmartin/cop3530/weiss/Ch19a_Weiss.pdf · Using the size data member to implement findKth ... is an outside grandchild.

Figure 19.36If S is black, a double rotation involving X, the parent, and the grandparent, withappropriate color changes, restores property 3 if X is an inside grandchild.

Data Structures & Problem Solving using JAVA/2E Mark Allen Weiss © 2002 Addison Wesley

Page 21: Binary Search Trees Chapter 19 - University of North Floridakmartin/cop3530/weiss/Ch19a_Weiss.pdf · Using the size data member to implement findKth ... is an outside grandchild.

Figure 19.37If S is red, a single rotation between parent and grandparent, with appropriate colorchanges, restores property 3 between X and P.

Data Structures & Problem Solving using JAVA/2E Mark Allen Weiss © 2002 Addison Wesley

Page 22: Binary Search Trees Chapter 19 - University of North Floridakmartin/cop3530/weiss/Ch19a_Weiss.pdf · Using the size data member to implement findKth ... is an outside grandchild.

Figure 19.38Color flip: Only if X’s parent is red do we continue with a rotation.

Data Structures & Problem Solving using JAVA/2E Mark Allen Weiss © 2002 Addison Wesley