/// <summary> /// Создание сбалансированного дерева /// </summary> /// <param name="size">Количество вершин</param> /// <param name="tree">Дерево</param> /// <returns>Сбалансированное дерево</returns> public static BinTree ProdIdealTree(int size, BinTree tree) { // Заполнение массива arr = new int[size]; for (int i = 0; i < size; i++) { Console.WriteLine("Введите {0}й элемент", i + 1); arr[i] = ReadCheak.ReadInt(); } int j = 0; // Создание сбалансированного дерева по массиву вершин return(IdealTree(size, tree, ref j, arr)); }
/// <summary> /// Добавление элемента и балансировка дерева /// </summary> /// <param name="tree">Дерево</param> /// <returns>Сбалансированное дерево с добавленной вершиной</returns> public static BinTree AddElement(BinTree tree) { // Копирование элементов дерева int[] CopyArr = new int[arr.Length]; for (int i = 0; i < arr.Length; i++) { CopyArr[i] = arr[i]; } // Увеличение числа вершин в массиве arr = new int[CopyArr.Length + 1]; // Возвращение элементов в массив for (int i = 0; i < CopyArr.Length; i++) { arr[i] = CopyArr[i]; } // Добавление вершины Console.WriteLine("Введите элемент"); arr[arr.Length - 1] = ReadCheak.ReadInt(); int j = 0; // Сбалансирование дерева return(IdealTree(arr.Length, tree, ref j, arr)); }