Class GraphTools

java.lang.Object
xyz.cofe.collection.graph.GraphTools

public class GraphTools
extends java.lang.Object
Инстуремент для работы с графами
Author:
nt.gocha@gmail.com
  • Constructor Summary

    Constructors 
    Constructor Description
    GraphTools()  
  • Method Summary

    Modifier and Type Method Description
    static <N,​ E> N firstNode​(Edge<N,​E> edge, Path.Direction d)  
    static <N,​ E> int getMaxPathLength​(Graph<N,​E> g, N start, Path.Direction direct)
    Получение максимального длинный пути в графе (макс кол-во ребр в пути).
    static <N,​ E> GraphIterator<N,​E> iterator​(Graph<N,​E> gr)  
    static <N,​ E> GraphIterator<N,​E> iterator​(Graph<N,​E> gr, boolean reverseOrder)  
    static <N,​ E> java.util.function.Function<Edge<N,​E>,​N> nodeAOfEdge()
    Возвращает вершину А из ребра
    static <N,​ E> java.util.function.Function<Edge<N,​E>,​N> nodeBOfEdge()
    Возвращает вершину Б из ребра
    static <N,​ E> NodesExtracter<N,​N> nodeExtracter​(Graph<N,​E> g, Path.Direction direct)
    Создает извелечение смеженных узлов из узла
    static <N,​ E> N secondNode​(Edge<N,​E> edge, Path.Direction d)  

    Methods inherited from class java.lang.Object

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

  • Method Details

    • nodeAOfEdge

      public static <N,​ E> java.util.function.Function<Edge<N,​E>,​N> nodeAOfEdge()
      Возвращает вершину А из ребра
      Type Parameters:
      N - Тип вершины
      E - Тип ребра/дуги
      Returns:
      Вершина А
    • nodeBOfEdge

      public static <N,​ E> java.util.function.Function<Edge<N,​E>,​N> nodeBOfEdge()
      Возвращает вершину Б из ребра
      Type Parameters:
      N - Тип вершины
      E - Тип ребра/дуги
      Returns:
      Вершина Б
    • nodeExtracter

      public static <N,​ E> NodesExtracter<N,​N> nodeExtracter​(Graph<N,​E> g, Path.Direction direct)
      Создает извелечение смеженных узлов из узла
      Type Parameters:
      N - Тип узла/вершины
      E - Тип ребра/дуги
      Parameters:
      g - Граф
      direct - Направление
      Returns:
      извлекатель
    • getMaxPathLength

      public static <N,​ E> int getMaxPathLength​(Graph<N,​E> g, N start, Path.Direction direct)
      Получение максимального длинный пути в графе (макс кол-во ребр в пути).
      Type Parameters:
      N - Тип узла/вершины
      E - Тип ребра/дуги
      Parameters:
      g - Граф
      start - Начальная вершина
      direct - Направление
      Returns:
      -1 - цикл;

      0 - начальная вершина, она же конечна;

      1 - одно ребро; 2 - два ребра ...

    • firstNode

      public static <N,​ E> N firstNode​(Edge<N,​E> edge, Path.Direction d)
    • secondNode

      public static <N,​ E> N secondNode​(Edge<N,​E> edge, Path.Direction d)
    • iterator

      public static <N,​ E> GraphIterator<N,​E> iterator​(Graph<N,​E> gr)
    • iterator

      public static <N,​ E> GraphIterator<N,​E> iterator​(Graph<N,​E> gr, boolean reverseOrder)