public static void Main (string[] args)
		{
			Console.WriteLine ("Hello World!");
			BinarySearchTree bst = new BinarySearchTree ();
			bst.Insert (23);
			bst.Insert (45);
			bst.Insert (16);
			bst.Insert (37);
			bst.Insert (3);
			bst.Insert (99);
			bst.Insert (22);
			Console.WriteLine ("Traversal");
			bst.InOrder (bst.root);
			Console.ReadLine ();
		}
Exemple #2
0
        public static void Main(string[] args)
        {
            /*
             *
             *
             *                          7
             *                         / \
             *                        3   13
             *                       / \  / \
             *                      2  4  9  16
             *                     /          \
             *                    1            19
             *
             */

            BinarySearchTree BST = new BinarySearchTree();

            /*
             *
             * BST.Insert(BST.GetRoot(),4);
             * BST.Insert(BST.GetRoot(),7);
             * BST.Insert(BST.GetRoot(),16);
             * BST.Insert(BST.GetRoot(),19);
             * BST.Insert(BST.GetRoot(),3);
             * BST.Insert(BST.GetRoot(),1);
             * BST.Insert(BST.GetRoot(),9);
             * BST.Insert(BST.GetRoot(),2);
             *
             */
            BST.InsertBST(6);
            BST.InsertBST(4);
            BST.InsertBST(9);
            BST.InsertBST(2);
            BST.InsertBST(5);
            BST.InsertBST(8);
            BST.InsertBST(12);
            BST.InsertBST(10);
            BST.InsertBST(14);
            Console.WriteLine(Environment.NewLine);
            int searchValue = 9;

            Console.WriteLine($"Searching for Value {searchValue} in the tree.. ");

            if (BinarySearchTree.Search(BST.GetRoot(), searchValue) != null)
            {
                Console.WriteLine($"Value {searchValue} found!!");
            }
            else
            {
                Console.WriteLine($"Value {searchValue} not found!!");
            }

            List <int> result = new List <int>();

            // Node root = BinarySearchTree.CreateTree();
            Console.WriteLine(Environment.NewLine);
            Console.WriteLine("InOrder Traversal: ");
            BinarySearchTree.InOrder(BST.GetRoot(), result);
            Console.WriteLine(string.Join(" ", result));

            Console.WriteLine(Environment.NewLine);
            Console.WriteLine("Delete 2");
            Console.WriteLine(BST.Delete(BST.GetRoot(), 2));
            Console.WriteLine("After deletion");
            result.Clear();
            Console.WriteLine("InOrder Traversal: ");
            BinarySearchTree.InOrder(BST.GetRoot(), result);
            Console.WriteLine(string.Join(" ", result));

            Console.WriteLine(Environment.NewLine);
            Console.WriteLine("PreOrder Traversal: ");
            BinarySearchTree.PreOrder(BST.GetRoot());

            Console.WriteLine(Environment.NewLine);
            Console.WriteLine("PostOrder Traversal: ");
            BinarySearchTree.PostOrder(BST.GetRoot());

            Console.WriteLine(Environment.NewLine);
            Console.WriteLine("Find Minimum Value in Binary Search Tree: ");
            int min = BinarySearchTree.FindMinimum(BST.GetRoot());

            Console.WriteLine($"Minimum value in Binary Search tree is:  {min}");


            Console.WriteLine(Environment.NewLine);
            Console.WriteLine("Find Maximum Value in Binary Search Tree: ");
            int max = BinarySearchTree.FindMaxium(BST.GetRoot());

            Console.WriteLine($"Maximum value in Binary Search tree is:  {max}");

            Console.WriteLine(Environment.NewLine);
            Console.WriteLine("Find kth Maximum Value in Binary Search Tree: ");
            int k    = 3;
            int kmax = BinarySearchTree.FindKMaxium(BST.GetRoot(), k);

            Console.WriteLine($"kth Maximum: k={k} value in Binary Search tree is:  {kmax}");

            int k1 = 10;

            Console.WriteLine(Environment.NewLine);
            Console.WriteLine($"Find Ancestors of Node k: {k1} in Binary Search Tree: ");
            Console.WriteLine(BinarySearchTree.FindAncestors(BST.GetRoot(), k1));

            Console.WriteLine($"Height of Binary Search tree is: {BinarySearchTree.FindHeight(BST.GetRoot())}");

            int k2 = 3;

            Console.WriteLine($"Binary Search Tree Nodes at k: {k2} distance");
            Console.WriteLine(BinarySearchTree.FindKNodes(BST.GetRoot(), k2));
        }
Exemple #3
0
        static void Main(string[] args)
        {
            var bt = new BinarySearchTree();
            int x;

            while (true)
            {
                Console.WriteLine("1. Display tree");
                Console.WriteLine("2. Search");
                Console.WriteLine("3. Insert a new node");
                Console.WriteLine("4. Delete a node");
                Console.WriteLine("5. PreOrder Traversal");
                Console.WriteLine("6. InOrder Traversal");
                Console.WriteLine("7. PostOrder Traversal");
                Console.WriteLine("8. Height of tree");
                Console.WriteLine("9. Find Minimum key");
                Console.WriteLine("10. Find Maximum key");
                Console.WriteLine("11. Quit");

                var choice = Convert.ToInt32(Console.ReadLine());

                if (choice == 11)
                {
                    break;
                }

                switch (choice)
                {
                case 1:
                    bt.Display();
                    break;

                case 2:
                    Console.Write("Enter a key to be searched : ");
                    x = Convert.ToInt32(Console.ReadLine());

                    Console.WriteLine(bt.Search(x) ? "Key was found" : "Key not found");
                    break;

                case 3:
                    Console.Write("Enter a key to be Inserted : ");
                    x = Convert.ToInt32(Console.ReadLine());
                    bt.Insert(x);
                    break;

                case 4:
                    Console.Write("Enter a key to be Deleted : ");
                    x = Convert.ToInt32(Console.ReadLine());
                    bt.Delete(x);
                    break;

                case 5:
                    bt.PreOrder();
                    break;

                case 6:
                    bt.InOrder();
                    break;

                case 7:
                    bt.PostOrder();
                    break;

                case 8:
                    Console.WriteLine($"The HEIGHT of the tree is : {bt.Height()}");
                    break;

                case 9:
                    Console.WriteLine($"The MINIMUM key is : {bt.Min()}");
                    break;

                case 10:
                    Console.WriteLine($"The MAXIMUM key is : {bt.Max()}");
                    break;

                default:
                    Console.WriteLine("Invalid selection entered!!!");
                    break;
                }
            }
        }
Exemple #4
0
        static void Main(string[] args)
        {
            BinarySearchTree bt = new BinarySearchTree();
            int choice, x;

            while (true)
            {
                Console.WriteLine("1.Display Tree");
                Console.WriteLine("2.Search");
                Console.WriteLine("3.Insert a new node");
                Console.WriteLine("4.Delete a node");
                Console.WriteLine("5.Preorder Traversal");
                Console.WriteLine("6.Inorder Traversal");
                Console.WriteLine("7.Postorder Traversal");
                Console.WriteLine("8.Height of tree");
                Console.WriteLine("9.Find Minimum key");
                Console.WriteLine("10.Find Maximum key");
                Console.WriteLine("11.Quit");
                Console.Write("Enter your choice:");
                choice = Convert.ToInt32(Console.ReadLine());
                if (choice == 11)
                {
                    break;
                }
                switch (choice)
                {
                case 1:
                    bt.Display();
                    break;

                case 2:
                    Console.Write("Enter the key to be searched:");
                    x = Convert.ToInt32(Console.ReadLine());
                    if (bt.Search(x))
                    {
                        Console.WriteLine("Key found");
                    }
                    else
                    {
                        Console.WriteLine("key not found");
                    }
                    break;

                case 3:
                    Console.Write("Enter the key to be inserted:");
                    x = Convert.ToInt32(Console.ReadLine());
                    bt.Insert(x);
                    break;

                case 4:
                    Console.Write("Enter the key to be deleted:");
                    x = Convert.ToInt32(Console.ReadLine());
                    bt.Delete(x);
                    break;

                case 5:
                    bt.PreOrder();
                    break;

                case 6:
                    bt.InOrder();
                    break;

                case 7:
                    bt.PostOrder();
                    break;

                case 8:
                    Console.WriteLine("Height of tree is " + bt.Height());
                    break;

                case 9:
                    Console.WriteLine("Minimum key is " + bt.Min());
                    break;

                case 10:
                    Console.WriteLine("Maximum key is " + bt.Max());
                    break;
                }
            }
        }