public void RemoveValueThatDoesNotExist() { var tree = new BinarySearchTree<int> {10, 7, 11, 8}; Assert.That(tree.Remove(13), Is.False); Assert.That(tree, Is.EqualTo(new[] { 7, 8, 10, 11 })); }
public void RemoveRootNode() { var tree = new BinarySearchTree<int> {10}; tree.Remove(10); Assert.That(tree, Is.EqualTo(new int[0])); }
public void RemoveValueFromEmptyTree() { var tree = new BinarySearchTree<int>(); Assert.That(tree.Remove(10), Is.False); Assert.That(tree, Is.EqualTo(new int[0])); }
public void RemoveNodeWithNoChildren() { var tree = new BinarySearchTree<int> {10, 7, 8, 6}; Assert.That(tree.Remove(8), Is.True); Assert.That(tree.Remove(6), Is.True); Assert.That(tree, Is.EqualTo(new[] { 7, 10 })); }