Beispiel #1
0
        static void Main(string[] args)
        {
            var tree = new BinarySearchTree <string>();

            tree.Insert("Software University");
            tree.Insert("Google");
            tree.Insert("Microsoft");
            tree.PrintTreeDFS(); // Google Microsoft Software University

            Console.WriteLine(tree.Contains("Google"));
            Console.WriteLine(tree.Contains("IBM"));
            tree.Remove("Google");
            Console.WriteLine(tree.Contains("Google"));
            tree.PrintTreeDFS();
        }
        private static void Main()
        {
            var tree = new BinarySearchTree <string, int>();

            tree.Add("Hans", 20);
            tree.Add("Berta", 31);
            tree.Add("Andreas", 18);
            tree.Add("Kurt", 55);
            tree.Add("Nele", 35);
            tree.Add("Ken", 16);
            tree.Add("Marie", 8);
            tree.Add("Paul", 6);
            tree.Add("Peter", 66);
            tree.Add("Jo", 41);
            tree.Add("Zia", 64);
            Console.WriteLine(tree.Contains("Zia"));
            Console.WriteLine(tree.Contains("Coco"));
            if (tree.Contains("Marie"))
            {
                Console.WriteLine(tree["Marie"]);
            }
            Console.WriteLine(tree);
            tree.TraverseMode = TraverseModeEnum.PreOrder;
            Console.WriteLine(tree);
            tree.TraverseMode = TraverseModeEnum.PostOrder;
            Console.WriteLine(tree);
            tree.TraverseMode = TraverseModeEnum.InOrder;
            Console.WriteLine(tree);
            tree.TraverseMode = TraverseModeEnum.ReverseInOrder;
            Console.WriteLine(tree);

            tree.Clear();
            tree.AddIterative("Hans", 20);
            tree.AddIterative("Berta", 31);
            tree.AddIterative("Andreas", 18);
            tree.AddIterative("Kurt", 55);
            tree.AddIterative("Nele", 35);
            tree.AddIterative("Ken", 16);
            tree.AddIterative("Marie", 8);
            tree.AddIterative("Paul", 6);
            tree.AddIterative("Peter", 66);
            tree.AddIterative("Jo", 41);
            tree.AddIterative("Zia", 64);
            tree.TraverseMode = TraverseModeEnum.PreOrder;
            Console.WriteLine(tree);
            Console.WriteLine(tree.Min);
            Console.WriteLine(tree.Max);
        }
        static void Main(string[] args)
        {
            BinarySearchTree <int> bst = new BinarySearchTree <int>();

            bst.Insert(10);
            bst.Insert(5);
            bst.Insert(3);
            bst.Insert(1);
            bst.Insert(4);
            bst.Insert(8);
            bst.Insert(9);
            bst.Insert(37);
            bst.Insert(39);
            bst.Insert(45);

            bst.EachInOrder(Console.WriteLine);
            Console.WriteLine();

            BinarySearchTree <int> search = bst.Search(5);

            search.Insert(50);
            Console.WriteLine(bst.Contains(50));
            search.EachInOrder(Console.WriteLine);
            Console.WriteLine();

            foreach (int item in bst.Range(4, 37))
            {
                Console.WriteLine(item);
            }
        }
        private static void TestBinarySearchTree()
        {
            var sb = new StringBuilder();

            var tree = new BinarySearchTree<int>(15);

            for (int i = 0; i < 30; i++)
            {
                tree.Add(i);
            }

            var clonedNode = (TreeNode<int>)tree.Root.Clone();

            sb.AppendLine(tree.ToString())
                .AppendLine("Tree root: " + tree.Root.ToString())
                .AppendLine("Tree contains 7? " + tree.Contains(7).ToString())
                .AppendLine("Cloned root: " + clonedNode.ToString())
                .AppendLine("Cloned Equals root? " + (clonedNode.Equals(tree.Root)).ToString())
                .AppendLine("Cloned == root? " + (clonedNode == tree.Root).ToString())
                .AppendLine("Cloned != root? " + (clonedNode != tree.Root).ToString())
                .AppendLine("12 deleted. New tree:");

            Console.Write(sb.ToString());

            tree.Delete(12);
            Console.WriteLine(tree.ToString());
        }
Beispiel #5
0
        public bool Contains(int value)
        {
            var contains = false;

            if (this.value < value)
            {
                if (this.right == null)
                {
                    return(false);
                }
                else
                {
                    return(right.Contains(value));
                }
            }
            else if (this.value > value)
            {
                if (this.left == null)
                {
                    return(false);
                }
                else
                {
                    return(left.Contains(value));
                }
            }
            else
            {
                return(true);
            }

            return(contains);
        }
        public static void Main()
        {
            BinarySearchTree tree = new BinarySearchTree();

            Random r = new Random();

            WriteLine("Welcome! The purpose of this program is to generate numbers randomly " +
                      "\nand use a binary search tree to sort and find any given number.");
            string userInput = ReadLine();

            for (int index = 0; index < 13; index++)
            {
                int generated = r.Next(0, 100);
                tree.Insert(generated);
            }

            Write("Would you like to traverse in-order? \"No\" skips. ");
            userInput = ReadLine();

            if (!string.Equals(userInput, "No", StringComparison.OrdinalIgnoreCase))
            {
                tree.Inorder();
            }

            Write("Would you like to traverse pre-order? \"No\" skips. ");
            userInput = ReadLine();

            if (!string.Equals(userInput, "No", StringComparison.OrdinalIgnoreCase))
            {
                tree.Preorder();
            }

            Write("Would you like to traverse post-order? \"No\" skips. ");
            userInput = ReadLine();

            if (!string.Equals(userInput, "No", StringComparison.OrdinalIgnoreCase))
            {
                tree.Postorder();
            }

            Write("Would you like to print the smallest number? \"No\" skips. ");
            userInput = ReadLine();

            if (!string.Equals(userInput, "No", StringComparison.OrdinalIgnoreCase))
            {
                tree.Minimum();
            }

            Write("Would you like to print the largest number? \"No\" skips. ");
            userInput = ReadLine();

            if (!string.Equals(userInput, "No", StringComparison.OrdinalIgnoreCase))
            {
                tree.Maximum();
            }

            Write("Would you like to search for a particular number? \"Yes\" continues. ");
            userInput = ReadLine();

            if (string.Equals(userInput, "Yes", StringComparison.OrdinalIgnoreCase))
            {
                Write("Please enter a number to search for: ");
                int number = int.Parse(ReadLine());
                tree.Contains(number);
            }

            Write("Would you like to delete a particular number? \"Yes\" continues. ");
            userInput = ReadLine();

            if (string.Equals(userInput, "Yes", StringComparison.OrdinalIgnoreCase))
            {
                Write("Please enter a number to delete: ");
                int number = int.Parse(ReadLine());
                tree.Delete(number);
            }

            tree.Inorder();
        }