Пример #1
0
        static void Main(string[] args)
        {
            BinarySearchTree<double> tree = new BinarySearchTree<double>(5.5);
            tree.AddChild(10.3);
            tree.AddChild(4.7);
            tree.AddChild(20.4);
            tree.AddChild(141.6);
            Console.WriteLine(tree);
          //  Console.WriteLine(tree.Find(5.5));

            tree.RemoveChild(141.6);
            Console.WriteLine(tree);
        }
Пример #2
0
        static void Main(string[] args)
        {
            BinarySearchTree <double> tree = new BinarySearchTree <double>(5.5);

            tree.AddChild(10.3);
            tree.AddChild(4.7);
            tree.AddChild(20.4);
            tree.AddChild(141.6);
            Console.WriteLine(tree);
            //  Console.WriteLine(tree.Find(5.5));

            tree.RemoveChild(141.6);
            Console.WriteLine(tree);
        }
Пример #3
0
        public void RemoveTest()
        {
            BinarySearchTree <int> bst = new BinarySearchTree <int>();

            Assert.AreEqual(0, bst.Count);

            bst.AddChild(1337);
            Assert.AreEqual(1, bst.Count);

            bst.Remove(1337);
            Assert.AreEqual(0, bst.Count);

            bst.AddChild(5);
            bst.AddChild(3);
            bst.AddChild(2);
            bst.AddChild(6);
            bst.AddChild(1);
            bst.AddChild(4);

            Assert.AreEqual(2, bst.FindParent(1).Value);
            bst.Remove(2);
            Assert.AreEqual(3, bst.FindParent(1).Value);
            bst.Remove(4);
            Assert.AreEqual(null, bst.Find(3).Right);
            bst.Remove(5);
            Assert.AreEqual(6, bst.FindParent(3).Value);
            Assert.IsFalse(bst.Remove(100));
        }
Пример #4
0
        public void OutOrderTraversalTest()
        {
            BinarySearchTree <int> bst = new BinarySearchTree <int>();

            bst.AddChild(5);
            bst.AddChild(3);
            bst.AddChild(2);
            bst.AddChild(6);
            bst.AddChild(1);
            bst.AddChild(4);

            string outOrder = String.Join(',', DFS.OutOrder(bst.root));

            Assert.AreEqual("6,5,4,3,2,1", outOrder);
        }
Пример #5
0
        public void InOrderTraversalTest()
        {
            BinarySearchTree <int> bst = new BinarySearchTree <int>();

            bst.AddChild(5);
            bst.AddChild(3);
            bst.AddChild(2);
            bst.AddChild(6);
            bst.AddChild(1);
            bst.AddChild(4);

            string inOrder = String.Join(',', DFS.InOrder(bst.root));

            Assert.AreEqual("1,2,3,4,5,6", inOrder);
        }
Пример #6
0
        public void PreOrderTraversalTest()
        {
            BinarySearchTree <int> bst = new BinarySearchTree <int>();

            bst.AddChild(5);
            bst.AddChild(3);
            bst.AddChild(2);
            bst.AddChild(6);
            bst.AddChild(1);
            bst.AddChild(4);

            string preOrder = String.Join(',', DFS.PreOrder(bst.root));

            Assert.AreEqual("5,3,2,1,4,6", preOrder);
        }
Пример #7
0
        public void FindMinTest()
        {
            BinarySearchTree <int> bst = new BinarySearchTree <int>();

            bst.AddChild(5);
            bst.AddChild(3);
            bst.AddChild(2);
            bst.AddChild(6);
            bst.AddChild(1);
            bst.AddChild(4);

            Assert.AreEqual(1, bst.FindMin().Value);
            bst.Remove(1);
            Assert.AreEqual(2, bst.FindMin().Value);
        }
Пример #8
0
        public void FindTest()
        {
            BinarySearchTree <int> bst = new BinarySearchTree <int>();

            bst.AddChild(5);
            bst.AddChild(3);
            bst.AddChild(2);
            bst.AddChild(6);
            bst.AddChild(1);
            bst.AddChild(4);

            BinaryTreeNode <int> Node;

            Node = bst.Find(4);
            Assert.AreEqual(4, Node.Value);

            Node = bst.Find(23);
            Assert.AreEqual(null, Node);
        }
Пример #9
0
        public void FindParentTest()
        {
            BinarySearchTree <int> bst = new BinarySearchTree <int>();

            Assert.AreEqual(0, bst.Count);

            bst.AddChild(5);
            bst.AddChild(3);
            bst.AddChild(2);
            bst.AddChild(6);
            bst.AddChild(1);
            bst.AddChild(4);

            Assert.AreEqual(2, bst.FindParent(1).Value);
            Assert.AreEqual(3, bst.FindParent(4).Value);
            Assert.AreEqual(5, bst.FindParent(3).Value);
            Assert.AreEqual(5, bst.FindParent(6).Value);
            Assert.AreEqual(null, bst.FindParent(5));
        }
Пример #10
0
        public void AddTest()
        {
            BinarySearchTree <int> bst = new BinarySearchTree <int>();

            Assert.AreEqual(0, bst.Count);

            bst.AddChild(5);
            bst.AddChild(3);
            bst.AddChild(2);
            bst.AddChild(6);
            bst.AddChild(1);
            bst.AddChild(4);

            Assert.AreEqual(true, bst.Contains(6));
            Assert.AreEqual(true, bst.Contains(3));
            Assert.AreEqual(false, bst.Contains(23));

            Assert.AreEqual(6, bst.Count);
        }
Пример #11
0
        public void IsValid()
        {
            BinarySearchTree <int> bst = new BinarySearchTree <int>();

            bst.AddChild(5);
            bst.AddChild(3);
            bst.AddChild(2);
            bst.AddChild(6);
            bst.AddChild(1);
            bst.AddChild(4);

            Assert.AreEqual(true, ValidateBST.IsValid(bst));

            var newNode = new BinaryTreeNode <int>(-2);

            newNode.Left  = bst.root.Left;
            newNode.Right = bst.root.Right;
            bst.root      = newNode;

            Assert.AreEqual(false, ValidateBST.IsValid(bst));
        }
Пример #12
0
        public void BinarySearchTest()
        {
            /*
             *    5
             *   / \
             *  3   6
             * /  \
             * 2   4
             * /
             * 1
             */

            BinarySearchTree <int> bst = new BinarySearchTree <int>();

            bst.AddChild(5);
            bst.AddChild(3);
            bst.AddChild(2);
            bst.AddChild(6);
            bst.AddChild(1);
            bst.AddChild(4);

            Assert.AreEqual(4, DFS.FindBinaryTreeNode(bst.root, 4).Value);
            Assert.AreEqual(null, DFS.FindBinaryTreeNode(bst.root, 24));
        }