Beispiel #1
0
        /// <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));
        }
Beispiel #2
0
        /// <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));
        }