public void Remove_TheRootFromATwoLevelTree_TheCorrectTree() { var rootNode = SimpleTree.RootElement; var bst = SimpleTree.Create(); bst.Remove(rootNode.Key); NodeAssert.NotNullAndEqual(bst.Root, Node(5)); NodeAssert.BothChildrenAreNotNull(bst.Root); NodeAssert.NotNullAndEqual(bst.Root.Right, SimpleTree.SecondBiggestElement); NodeAssert.LeftChildIsNull(bst.Root.Right); NodeAssert.NotNullAndEqual(bst.Root.Left, SimpleTree.SecondSmallestElement); NodeAssert.BothChildrenAreNotNull(bst.Root.Left); }
public void Remove_TheRightChildWithLeftChild_TheRootWithWithRightChild() { var firstNode = 1; var secondNode = 3; var thirdNode = 2; var bst = new BinarySearchTree <int, int>(); bst.Insert(Key(firstNode), Value(firstNode)); bst.Insert(Key(secondNode), Value(secondNode)); bst.Insert(Key(thirdNode), Value(thirdNode)); bst.Remove(Key(secondNode)); NodeAssert.NotNullAndEqual(bst.Root, Node(firstNode)); NodeAssert.NotNullAndEqual(bst.Root.Right, Node(thirdNode)); NodeAssert.LeftChildIsNull(bst.Root); }