Constructing BST in Figure 1. [3 (size=1, height=0)] [7 (size=4, height=2)] [9 (size=1, height=0)] [11 (size=2, height=1)] [14 (size=8, height=3)] [15 (size=2, height=1)] [17 (size=1, height=0)] [20 (size=3, height=2)] [22 (size=13, height=4)] [24 (size=1, height=0)] [26 (size=2, height=1)] [30 (size=4, height=2)] [37 (size=1, height=0)] [41 (size=22, height=5)] [50 (size=1, height=0)] [54 (size=3, height=1)] [59 (size=1, height=0)] [60 (size=4, height=2)] [64 (size=8, height=3)] [71 (size=2, height=1)] [75 (size=1, height=0)] [79 (size=3, height=2)] Yes, t contains 24 No, t does not contain 19 Testing span() method: Yes, there are 9 items between 22 and 59 (inclusive). Yes, there are 6 items between 17 and 36 (inclusive). Yes, there are 6 items between 13 and 25 (inclusive). Yes, there are 4 items between 22 and 35 (inclusive). Yes, there are 8 items between 5 and 22 (inclusive). Adding 12 should trigger a rebalance... Output looks like Figure 4 *PLUS* node 12: [3 (size=2, height=1)] [7 (size=1, height=0)] [9 (size=7, height=3)] [11 (size=2, height=1)] [12 (size=1, height=0)] [14 (size=4, height=2)] [15 (size=1, height=0)] [17 (size=14, height=4)] [20 (size=2, height=1)] [22 (size=1, height=0)] [24 (size=6, height=2)] [26 (size=1, height=0)] [30 (size=3, height=1)] [37 (size=1, height=0)] [41 (size=23, height=5)] [50 (size=1, height=0)] [54 (size=3, height=1)] [59 (size=1, height=0)] [60 (size=4, height=2)] [64 (size=8, height=3)] [71 (size=2, height=1)] [75 (size=1, height=0)] [79 (size=3, height=2)] Removing 41... Yes, 41 was removed BST after removing 41 (50 should be new root): [3 (size=2, height=1)] [7 (size=1, height=0)] [9 (size=7, height=3)] [11 (size=2, height=1)] [12 (size=1, height=0)] [14 (size=4, height=2)] [15 (size=1, height=0)] [17 (size=14, height=4)] [20 (size=2, height=1)] [22 (size=1, height=0)] [24 (size=6, height=2)] [26 (size=1, height=0)] [30 (size=3, height=1)] [37 (size=1, height=0)] [50 (size=22, height=5)] [54 (size=2, height=1)] [59 (size=1, height=0)] [60 (size=3, height=2)] [64 (size=7, height=3)] [71 (size=2, height=1)] [75 (size=1, height=0)] [79 (size=3, height=2)] Removing 50 should trigger a rebalance Yes, 50 was removed [3 (size=1, height=0)] [7 (size=4, height=2)] [9 (size=2, height=1)] [11 (size=1, height=0)] [12 (size=10, height=3)] [14 (size=2, height=1)] [15 (size=1, height=0)] [17 (size=5, height=2)] [20 (size=2, height=1)] [22 (size=1, height=0)] [24 (size=21, height=4)] [26 (size=2, height=1)] [30 (size=1, height=0)] [37 (size=4, height=2)] [54 (size=1, height=0)] [59 (size=10, height=3)] [60 (size=2, height=1)] [64 (size=1, height=0)] [71 (size=5, height=2)] [75 (size=2, height=1)] [79 (size=1, height=0)]