Class TreeImpl


  • public class TreeImpl
    extends Object
    • Constructor Detail

      • TreeImpl

        public TreeImpl()
    • Method Detail

      • nodesOf

        public static <A extends Tree<A>> List<A> nodesOf​(Tree<A> tree)
      • nodesCount

        public static int nodesCount​(Tree tree)
        Получение кол-ва дочерних узлов
        Parameters:
        tree - родительский узел
        Returns:
        кол-во узлов
      • node

        public static <A extends Tree<A>> A node​(Tree<A> tree,
                                                 int index)
        Получение дочернего элемента по индексу
        Type Parameters:
        A - Тип узла
        Parameters:
        tree - родительский узел
        index - индекс
        Returns:
        Дочерний узел
      • set

        public static <A extends Tree<A>> List<Triple<Integer,​A,​A>> set​(Tree<A> tree,
                                                                                    int index,
                                                                                    A... values)
        Замена дочернего узла
        Type Parameters:
        A - Тип узла
        Parameters:
        tree - родительский узел
        index - идекс узлов которые необходимо заменить
        values - дочерние узлы
        Returns:
        Список изменений (index, oldChildNode, newChildNode)
      • set

        public static <A extends Tree<A>> void set​(Tree<A> tree,
                                                   int index,
                                                   A[] values,
                                                   Consumer<Triple<Integer,​A,​A>> changes)
        Замена дочернего узла
        Type Parameters:
        A - Тип узла
        Parameters:
        tree - родительский узел
        index - идекс узлов которые необходимо заменить
        values - дочерние узлы
        changes - Список изменений (index, oldChildNode, newChildNode)
      • set

        public static <A extends Tree<A>> List<Triple<Integer,​A,​A>> set​(Tree<A> tree,
                                                                                    int index,
                                                                                    Iterable<A> values)
        Замена дочернего узла
        Type Parameters:
        A - Тип узла
        Parameters:
        tree - родительский узел
        index - идекс узлов которые необходимо заменить
        values - дочерние узлы
        Returns:
        Список изменений (index, oldChildNode, newChildNode)
      • set

        public static <A extends Tree<A>> void set​(Tree<A> tree,
                                                   int index,
                                                   Iterable<A> values,
                                                   Consumer<Triple<Integer,​A,​A>> changes)
        Замена дочернего узла
        Type Parameters:
        A - Тип узла
        Parameters:
        tree - родительский узел
        index - идекс узлов которые необходимо заменить
        values - дочерние узлы
        changes - Список изменений (index, oldChildNode, newChildNode)
      • insert

        public static <A extends Tree<A>> List<Triple<Integer,​A,​A>> insert​(Tree<A> tree,
                                                                                       int index,
                                                                                       A... nodes)
        Добавление дочернего узла в указанную позицию списка дочерних улов
        Type Parameters:
        A - Тип узла
        Parameters:
        tree - родительский узел
        index - индекс (0..) позиции вставки
        nodes - дочерние узлы
        Returns:
        список добавленных узлов - fn( index, null, insertedChildNode )
      • insert

        public static <A extends Tree<A>> void insert​(Tree<A> tree,
                                                      int index,
                                                      A[] nodes,
                                                      Consumer<Triple<Integer,​A,​A>> added)
        Добавление дочернего узла в указанную позицию списка дочерних улов
        Type Parameters:
        A - Тип узла
        Parameters:
        tree - родительский узел
        index - индекс (0..) позиции вставки
        nodes - дочерние узлы
        added - список добавленных узлов - fn( index, null, insertedChildNode )
      • insert

        public static <A extends Tree<A>> List<Triple<Integer,​A,​A>> insert​(Tree<A> tree,
                                                                                       int index,
                                                                                       Iterable<A> nodes)
        Добавление дочернего узла в указанную позицию списка дочерних улов
        Type Parameters:
        A - Тип узла
        Parameters:
        tree - родительский узел
        nodes - дочерние узлы
        Returns:
        список добавленных узлов - fn( index, null, insertedChildNode )
      • insert

        public static <A extends Tree<A>> void insert​(Tree<A> tree,
                                                      int index,
                                                      Iterable<A> nodes,
                                                      Consumer<Triple<Integer,​A,​A>> added)
        Добавление дочернего узла в указанную позицию списка дочерних улов
        Type Parameters:
        A - Тип узла
        Parameters:
        tree - родительский узел
        nodes - дочерние узлы
        index - индекс (0..) позиции вставки
        added - список добавленных узлов - fn( index, null, insertedChildNode )
      • append

        public static <A extends Tree<A>> List<Triple<Integer,​A,​A>> append​(A tree,
                                                                                       A... nodes)
        Добавление дочернего узла в конец списка
        Type Parameters:
        A - Тип узла
        Parameters:
        tree - родительский узел
        nodes - дочерние узлы
        Returns:
        список добавленных узлов - fn( index, null, insertedChildNode )
      • append

        public static <A extends Tree<A>> void append​(A tree,
                                                      A[] nodes,
                                                      Consumer<Triple<Integer,​A,​A>> added)
        Добавление дочернего узла в конец списка
        Type Parameters:
        A - Тип узла
        Parameters:
        tree - родительский узел
        nodes - дочерние узлы
        added - список добавленных узлов - fn( index, null, insertedChildNode )
      • append

        public static <A extends Tree<A>> void append​(A tree,
                                                      Iterable<A> nodes)
        Добавление дочернего узла в конец списка
        Type Parameters:
        A - Тип узла
        Parameters:
        tree - родительский узел
        nodes - дочерние узлы
      • append

        public static <A extends Tree<A>> void append​(A tree,
                                                      Iterable<A> nodes,
                                                      Consumer<Triple<Integer,​A,​A>> added)
        Добавление дочернего узла в конец списка
        Type Parameters:
        A - Тип узла
        Parameters:
        tree - родительский узел
        nodes - дочерние узлы
        added - список добавленных узлов - fn( index, null, insertedChildNode )
      • deleteByIndex

        public static <A extends Tree<A>> void deleteByIndex​(Tree<A> tree,
                                                             int... index)
        Удаление дочернего узла(ов)
        Type Parameters:
        A - Тип узла
        Parameters:
        tree - родительский узел
        index - иднекс дочернего элемента(ов)
      • deleteByIndex

        public static <A extends Tree<A>> void deleteByIndex​(Tree<A> tree,
                                                             int[] index,
                                                             Consumer<Triple<Integer,​A,​A>> deleted)
        Удаление дочернего узла(ов)
        Type Parameters:
        A - Тип узла
        Parameters:
        tree - родительский узел
        index - иднекс дочернего элемента(ов)
        deleted - возможно null, уведомление о удаленных элементах: fn( index, deletedChildNode, null )
      • deleteByIndex

        public static <A extends Tree<A>> void deleteByIndex​(Tree<A> tree,
                                                             Iterable<Integer> index)
        Удаление дочернего узла(ов)
        Type Parameters:
        A - Тип узла
        Parameters:
        tree - родительский узел
        index - иднекс дочернего элемента(ов)
      • deleteByIndex

        public static <A extends Tree<A>> void deleteByIndex​(Tree<A> tree,
                                                             Iterable<Integer> index,
                                                             Consumer<Triple<Integer,​A,​A>> deleted)
        Удаление дочернего узла(ов)
        Type Parameters:
        A - Тип узла
        Parameters:
        tree - родительский узел
        index - иднекс дочернего элемента(ов)
        deleted - возможно null, уведомление о удаленных элементах: fn( index, deletedChildNode, null )
      • deleteByValue

        public static <A extends Tree<A>> void deleteByValue​(Tree<A> tree,
                                                             A... value)
        Удаление дочернего узла(ов)
        Type Parameters:
        A - Тип узла
        Parameters:
        tree - родительский узел
        value - дочерние удаляемые элементы
      • deleteByValue

        public static <A extends Tree<A>> void deleteByValue​(Tree<A> tree,
                                                             Iterable<A> value)
        Удаление дочернего узла(ов)
        Type Parameters:
        A - Тип узла
        Parameters:
        tree - родительский узел
        value - дочерние удаляемые элементы
      • deleteByValue

        public static <A extends Tree<A>> void deleteByValue​(Tree<A> tree,
                                                             A[] value,
                                                             Consumer<Triple<Integer,​A,​A>> deleted)
        Удаление дочернего узла(ов)
        Type Parameters:
        A - Тип узла
        Parameters:
        tree - родительский узел
        value - дочерние удаляемые элементы
        deleted - возможно null, уведомление о удаленных элементах: fn( index, deletedChildNode, null )
      • deleteByValue

        public static <A extends Tree<A>> void deleteByValue​(Tree<A> tree,
                                                             Iterable<A> value,
                                                             Consumer<Triple<Integer,​A,​A>> deleted)
        Удаление дочернего узла(ов)
        Type Parameters:
        A - Тип узла
        Parameters:
        tree - родительский узел
        value - дочерние удаляемые элементы
        deleted - возможно null, уведомление о удаленных элементах: fn( index, deletedChildNode, null )
      • clear

        public static <A extends Tree<A>> void clear​(Tree<A> tree)
        Удаление всех дочерних узлов
        Type Parameters:
        A - Тип узла
        Parameters:
        tree - родительский узел
      • clear

        public static <A extends Tree<A>> void clear​(Tree<A> tree,
                                                     Consumer<Triple<Integer,​A,​A>> deleted)
        Удаление всех дочерних узлов
        Type Parameters:
        A - Тип узла
        Parameters:
        tree - родительский узел
        deleted - возможно null, уведомление о удаленных элементах: fn( index, deletedChildNode, null )