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);
        }
Example #2
0
        static void Main(string[] args)
        {
            var tree = new BinarySearchTree();

            /*
             * Random rand = new Random();
             *
             * int[] arr = { 27, 13, 42, 6, 17, 33, 48 };
             *
             * //int[] arr = new int[20];
             *
             * //for(int i = 0; i < arr.Length; i++)
             * //{
             * //    arr[i] = rand.Next(10);
             * //}
             *
             * foreach (var item in arr)
             *  tree.Add(item);
             *
             * Console.WriteLine("InOrder:");
             * tree.InOrder();
             *
             * Console.WriteLine("\n\nPreOrder:");
             * tree.PreOrder();
             *
             * Console.WriteLine("\n\nPostOrder:");
             * tree.PostOrder();
             *
             * Console.WriteLine("\n\nLevelOrder:");
             * tree.LevelOrder();
             *
             * Console.WriteLine("\n\nOutputTree:\n");
             * tree.OutputTree();
             *
             * //Console.WriteLine("\nDelete 13");
             * //tree.Delete(13);
             *
             * //Console.WriteLine("\n\nOutputTree:\n");
             * //tree.OutputTree();
             *
             * Console.WriteLine("\nContains 64\n");
             * Console.WriteLine(tree.Conatins(64));
             *
             * //Console.WriteLine("\nSave tree\n");
             * //tree.SaveToFile("SavedTree");
             *
             * Console.WriteLine("\nClear tree\n");
             * tree.Clear();
             */
            //Console.WriteLine("\nLoad tree");
            //tree.LoadFromFile("SavedTree");

            //Console.WriteLine("\n\nOutputTree:\n");
            //tree.OutputTree();

            //Console.WriteLine("\n");

            string line;

            string[] words;
            string   command;

            while ((line = Console.ReadLine()) != null)
            {
                words = line.Split(new char[] { ' ', '\t' }, StringSplitOptions.RemoveEmptyEntries);

                if (words.Length > 0)
                {
                    command = words[0];

                    if (command == "+")
                    {
                        for (int i = 1; i < words.Length; i++)
                        {
                            int value;
                            if (int.TryParse(words[i], out value))
                            {
                                tree.Add(value);
                            }
                        }
                    }
                    else if (command == "-")
                    {
                        for (int i = 1; i < words.Length; i++)
                        {
                            int value;
                            if (int.TryParse(words[i], out value))
                            {
                                tree.Remove(value);
                            }
                        }
                    }
                    else if (command == "contains" && words.Length > 1)
                    {
                        int value;
                        if (int.TryParse(words[1], out value))
                        {
                            Console.WriteLine($"\n{tree.Conatins(value)}\n");
                        }
                    }
                    else if (command == "clear")
                    {
                        tree.Clear();
                    }

                    else if (command == "save" && words.Length > 1)
                    {
                        tree.SaveToFile(words[1]);
                    }

                    else if (command == "load" && words.Length > 1)
                    {
                        tree.LoadFromFile(words[1]);
                    }

                    else if (command == "print")
                    {
                        tree.Output();
                    }
                    else if (command == "quit")
                    {
                        Console.WriteLine("\n");
                        return;
                    }
                }
            }
        }