Package xyz.cofe.iter

Class TreeStep<A>

  • Type Parameters:
    A - дерево

    public class TreeStep<A>
    extends Object
    Один шаг при обходе дерева
    • Field Detail

      • node

        protected final A node
        Ссылка на узел
      • parent

        protected final TreeStep<A> parent
        Ссылка на родительский узел
    • Constructor Detail

      • TreeStep

        public TreeStep​(A node)
        Конструктор
        Parameters:
        node - узел
      • TreeStep

        public TreeStep​(A node,
                        TreeStep<A> parent)
        Конструктор
        Parameters:
        node - узел
        parent - родительский узел
    • Method Detail

      • getNode

        public A getNode()
        Получение текущего узла
        Returns:
        текущий узел
      • getParent

        public TreeStep<A> getParent()
        Получение родительского узла
        Returns:
        родительский "узел"
      • follow

        public TreeStep<A> follow​(A a)
        Создание шага для дочернего узла
        Parameters:
        a - дочерний узел
        Returns:
        шаг
      • getLevel

        public int getLevel()
        Возвращает уровень вложенности для узла
        Returns:
        0 - корень
      • nodePath

        public A[] nodePath​(Class<A> nodeClass)
        Получение пути ввиде массива узлов
        Parameters:
        nodeClass - Тип жлементов массива
        Returns:
        массив узлов
      • nodeList

        public List<A> nodeList()
        Получение пути ввиде списка
        Returns:
        список
      • nodes

        public Eterable<A> nodes()
        Получение пути ввиде итератора
        Returns:
        путь
      • each

        public void each​(Consumer<A> visitor)
        Обход узлов пути от дочернего к корню
        Parameters:
        visitor - посититель
      • frequency

        public Map<A,​Integer> frequency()
        Получение частотности узлов в пути
        Returns:
        частотность узлов (узел / количесто сслок)
      • hasCycles

        public boolean hasCycles()
        Проверка на наличие циклов в пути
        Returns:
        true - циклы есть