Package xyz.cofe.iter

Class TreeStep<A>

java.lang.Object
xyz.cofe.iter.TreeStep<A>
Type Parameters:
A - дерево

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

    Fields 
    Modifier and Type Field Description
    protected A node
    Ссылка на узел
    protected TreeStep<A> parent
    Ссылка на родительский узел
  • Constructor Summary

    Constructors 
    Constructor Description
    TreeStep​(A node)
    Конструктор
    TreeStep​(A node, TreeStep<A> parent)
    Конструктор
  • Method Summary

    Modifier and Type Method Description
    void each​(java.util.function.Consumer<A> visitor)
    Обход узлов пути от дочернего к корню
    TreeStep<A> follow​(A a)
    Создание шага для дочернего узла
    java.util.Map<A,​java.lang.Integer> frequency()
    Получение частотности узлов в пути
    int getLevel()
    Возвращает уровень вложенности для узла
    A getNode()
    Получение текущего узла
    TreeStep<A> getParent()
    Получение родительского узла
    boolean hasCycles()
    Проверка на наличие циклов в пути
    java.util.List<A> nodeList()
    Получение пути ввиде списка
    A[] nodePath​(java.lang.Class<A> nodeClass)
    Получение пути ввиде массива узлов
    Eterable<A> nodes()
    Получение пути ввиде итератора

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • node

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

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

    • TreeStep

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

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

    • 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​(java.lang.Class<A> nodeClass)
      Получение пути ввиде массива узлов
      Parameters:
      nodeClass - Тип жлементов массива
      Returns:
      массив узлов
    • nodeList

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

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

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

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

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