예제 #1
0
        static void TreeTestSuite()
        {
            MyAVLTree <int> testtree = new MyAVLTree <int>();

            testtree.insert(10);
            testtree.insert(1010);
            testtree.insert(50);
            testtree.insert(5);
            testtree.insert(7);
            testtree.insert(0);
            testtree.insert(2);
            testtree.insert(3);
            testtree.insert(5);
            testtree.insert(6);
            Console.WriteLine("Is 6 in tree? {0}", (testtree.search(6) != null));

            Console.WriteLine("Is 5 in tree? {0}", (testtree.search(5) != null));

            Console.WriteLine("Is 17 in tree? {0}", (testtree.search(17) != null));

            Console.WriteLine("height of tree:  {0}", MyBST <int> .getHeight(testtree.head));
            Console.WriteLine("height of right subtree:  {0}", MyBST <int> .getHeight(testtree.head.right));
            Console.WriteLine("height of left subtree:  {0}", MyBST <int> .getHeight(testtree.head.left));

            Console.WriteLine("Performing rebalance.");
            testtree.reBalance();

            Console.WriteLine("height of tree:  {0}", MyBST <int> .getHeight(testtree.head));

            Console.WriteLine("height of right subtree:  {0}", MyBST <int> .getHeight(testtree.head.right));
            Console.WriteLine("height of left subtree:  {0}", MyBST <int> .getHeight(testtree.head.left));
        }
예제 #2
0
        public void Test_remove_null()
        {
            var bst = new MyBST <string>();

            bst.Add("abc");
            bst.Add("cd");
            bst.Add("qw");

            Assert.Throws <ArgumentNullException>(() => bst.Remove(null));
        }
예제 #3
0
        public void Test_add_existed_element()
        {
            var bst = new MyBST <char>();

            bst.Add('a');
            bst.Add('z');
            bst.Add('b');

            Assert.False(bst.Add('a'));
            Assert.True(bst.Add('A'));
        }
예제 #4
0
        public void Test_contains()
        {
            var bst = new MyBST <string>();

            bst.Add("abc");
            bst.Add("cd");
            bst.Add("qw");

            Assert.True(bst.Contains("cd"));
            Assert.False(bst.Contains("c"));
        }
예제 #5
0
        static void BSTTest()
        {
            var bst = new MyBST <int>();

            bst.insert(10);
            bst.insert(5);
            bst.insert(2);
            bst.insert(6);
            bst.insert(16);
            bst.insert(15);
            bst.insert(14);
            bst.inorder();
            bst.post();
            bst.pre();
            Console.WriteLine("Delete 15");
            bst.delete(15);
            bst.inorder();// should not contain 15!
            Console.WriteLine("Delete 2");
            bst.delete(2);
            bst.inorder();// should not contain 2!
        }
예제 #6
0
        public void Test_add_null()
        {
            var bst = new MyBST <string>();

            Assert.Throws <ArgumentNullException>(() => bst.Add(null));
        }
예제 #7
0
 public MyBSTTests()
 {
     BST     = new MyBST <int>();
     RandArr = GenerateRandArr();
 }