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) { 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; } } } }