Пример #1
0
        static void Main(string[] args)
        {
            var           rnd  = new Random();
            TreeFunctions tree = new TreeFunctions();

            //
            Console.Write("Введите целочисленное значение: ");
            int userX = Convert.ToInt32(System.Console.ReadLine());

            userX = Math.Abs(userX);
            System.Console.WriteLine();
            do
            {// случайные значения
                tree.DoSomeAdd(rnd.Next(userX) + 1);
                userX--;
            } while (userX != 0);
            // количество уровней древа
            int i = TreeFunctions.height(tree.Root);

            // Вывод результатов
            ShowMeNodes(tree.Root, i);
            // я эксперементально проверил, что двойка генерируется случайным образом всегда при уровне больше 3
            // если такого не случилось перезапустите программу
            Console.WriteLine("Удаляем  2 (двойку), где бы она не находилась.");
            //********************
            tree.deleteKey(2);
            //********************
            System.Console.WriteLine("Смотрим результат.");
            ShowMeNodes(tree.Root, i);
            Console.Write("Введите целочисленное значение для удаления (Не корень и не последний уровень!): ");
            userX = Convert.ToInt32(System.Console.ReadLine());
            userX = Math.Abs(userX);
            tree.deleteKey(userX);
            System.Console.WriteLine("Смотрим окончательный результат.");
            ShowMeNodes(tree.Root, i);
            System.Console.WriteLine();

            // красиво сделать так мне и не удалось :(
            Console.Write("Выводить визуализацию древа ?  ");
            Console.Write(" [ Да - 1 / Нет - 2] ");
            userX = Convert.ToInt32(System.Console.ReadLine());
            System.Console.WriteLine();
            if (userX == 1)
            {
                Console.Clear();
                System.Console.WriteLine("| 1 Lvl | 2 Lvl | 3 Lvl | 4 Lvl | 5 Lvl | 6 Lvl | 7 Lvl | 8 Lvl | 9 Lvl |  ");
                TreeFunctions.printTree(tree.Root);
            }
            Console.ReadLine();
        }
Пример #2
0
 public static void ShowMeNodes(Node node, int i)
 {
     System.Console.WriteLine("Все значения в дереве по порядку: ");
     TreeFunctions.sorted_level_order(node);
     System.Console.WriteLine();
     System.Console.WriteLine();
     System.Console.WriteLine("Breadth - first search finds nodes on each level.");
     do
     {
         System.Console.WriteLine();
         System.Console.Write("Nodes on " + i + " level: ");
         TreeFunctions.printGivenLevel(node, i);
         System.Console.WriteLine();
         i--;
     } while (i != 0);
     System.Console.WriteLine();
     System.Console.Write("Depth-first search finds this deepest node - ");
     System.Console.WriteLine(TreeFunctions.deepestNode(node));
     System.Console.WriteLine();
 }