Class MappedSDGraph<N,​E>

java.lang.Object
xyz.cofe.collection.graph.MappedSDGraph<N,​E>
All Implemented Interfaces:
DirectedGraph, Graph<N,​E>, SingleDirectedGraph<N,​E>, SingleGraph<N,​E>

public class MappedSDGraph<N,​E>
extends java.lang.Object
implements SingleDirectedGraph<N,​E>
Однонаправленный граф, с использованием словарей (java.util.Map)
Author:
gocha
  • Field Summary

    Fields 
    Modifier and Type Field Description
    protected java.util.Map<N,​java.util.Map<N,​E>> data
    Словарь/Данные графа
  • Constructor Summary

    Constructors 
    Constructor Description
    MappedSDGraph()  
  • Method Summary

    Modifier and Type Method Description
    void add​(N node)
    Добавляет вершину к графу
    void clearAll()
    Удалес все ребра и вершины
    void clearEdges()
    Удаляет все ребра
    boolean contains​(N node)
    Проверяет наличае вершины
    protected Edge<N,​E> createEdge​(N a, N b, E e)
    Создает ребро
    protected java.util.Collection<Edge<N,​E>> createEdgePairs()
    Созадает коллекцию дуг
    protected java.util.Collection<E> createEdges()
    Создает коллекцию дуг
    protected java.util.Map<N,​E> createN2EMap()
    Создает карту Вершина / Дуга
    protected java.util.Map<N,​java.util.Map<N,​E>> createN2NEMap()
    Создает карту Вершина / (Вершина / Дуга)
    java.lang.Iterable<Edge<N,​E>> edgesOf​(N node)
    Возвращает ребра указанной вершины
    java.lang.Iterable<Edge<N,​E>> edgesOfNodeA​(N nodeA)
    Возвращает ребра из вершины А
    java.lang.Iterable<Edge<N,​E>> edgesOfNodeB​(N nodeB)
    Возвращает ребра из вершины Б
    protected boolean equals​(N a, N b)
    Проверяет на эквивалентность вершины
    E get​(N a, N b)
    Возвращает ребро между вершинами
    protected java.util.Map<N,​java.util.Map<N,​E>> getData()
    Возвращает карту/данные Вершина / (Вершина / Дуга)
    E getEdge​(N a, N b)
    Возвращает ребро между вершинами
    java.lang.Iterable<Edge<N,​E>> getEdges()
    Возвращает Ребра и вершины графа
    java.lang.Iterable<E> getEdges​(N a, N b)
    Возвращает ребра между вершинами
    java.lang.Iterable<N> getNodes()
    Возвращает вершины графа
    boolean hasEdge​(N a, N b)
    Проверка наличия ребра между вершинами
    void remove​(N node)
    Удаляет вершину из графа
    void removeEdge​(N a, N b)
    Удаление ребра
    void set​(N a, N b, E e)
    Устанавливает/Сбрасывает ребро между вершинами
    void setEdge​(N a, N b, E edge)
    Установка ребра между вершинами
    void setEdges​(N a, N b, java.lang.Iterable<E> edges)
    Установка ребр между вершинами

    Methods inherited from class java.lang.Object

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

    • data

      protected java.util.Map<N,​java.util.Map<N,​E>> data
      Словарь/Данные графа
  • Constructor Details

  • Method Details

    • createN2EMap

      protected java.util.Map<N,​E> createN2EMap()
      Создает карту Вершина / Дуга
      Returns:
      Карта Вершина / Дуга
    • createN2NEMap

      protected java.util.Map<N,​java.util.Map<N,​E>> createN2NEMap()
      Создает карту Вершина / (Вершина / Дуга)
      Returns:
      Карта Вершина / (Вершина / Дуга)
    • createEdge

      protected Edge<N,​E> createEdge​(N a, N b, E e)
      Создает ребро
      Parameters:
      a - Вершниа А
      b - Вершина Б
      e - Дуга
      Returns:
      Дуга А - Б
    • getData

      protected java.util.Map<N,​java.util.Map<N,​E>> getData()
      Возвращает карту/данные Вершина / (Вершина / Дуга)
      Returns:
      Карта / Данные - Вершина / (Вершина / Дуга)
    • createEdgePairs

      protected java.util.Collection<Edge<N,​E>> createEdgePairs()
      Созадает коллекцию дуг
      Returns:
      Коллеция дуг
    • equals

      protected boolean equals​(N a, N b)
      Проверяет на эквивалентность вершины
      Parameters:
      a - Вершина А
      b - Вершина Б
      Returns:
      Эквивалентны вершины А и Б
    • createEdges

      protected java.util.Collection<E> createEdges()
      Создает коллекцию дуг
      Returns:
      Коллеция дуг
    • contains

      public boolean contains​(N node)
      Description copied from interface: Graph
      Проверяет наличае вершины
      Specified by:
      contains in interface Graph<N,​E>
      Parameters:
      node - Вершина
      Returns:
      true -вершина содержиться в графе
    • add

      public void add​(N node)
      Description copied from interface: Graph
      Добавляет вершину к графу
      Specified by:
      add in interface Graph<N,​E>
      Parameters:
      node - Вершина
    • remove

      public void remove​(N node)
      Description copied from interface: Graph
      Удаляет вершину из графа
      Specified by:
      remove in interface Graph<N,​E>
      Parameters:
      node - Вершина
    • getNodes

      public java.lang.Iterable<N> getNodes()
      Description copied from interface: Graph
      Возвращает вершины графа
      Specified by:
      getNodes in interface Graph<N,​E>
      Returns:
      вершины
    • getEdges

      public java.lang.Iterable<Edge<N,​E>> getEdges()
      Description copied from interface: Graph
      Возвращает Ребра и вершины графа
      Specified by:
      getEdges in interface Graph<N,​E>
      Returns:
      Ребра и вершины
    • edgesOf

      public java.lang.Iterable<Edge<N,​E>> edgesOf​(N node)
      Description copied from interface: Graph
      Возвращает ребра указанной вершины
      Specified by:
      edgesOf in interface Graph<N,​E>
      Parameters:
      node - Вершина
      Returns:
      ребра
    • edgesOfNodeA

      public java.lang.Iterable<Edge<N,​E>> edgesOfNodeA​(N nodeA)
      Description copied from interface: Graph
      Возвращает ребра из вершины А
      Specified by:
      edgesOfNodeA in interface Graph<N,​E>
      Parameters:
      nodeA - Вершина А
      Returns:
      Ребра
    • edgesOfNodeB

      public java.lang.Iterable<Edge<N,​E>> edgesOfNodeB​(N nodeB)
      Description copied from interface: Graph
      Возвращает ребра из вершины Б
      Specified by:
      edgesOfNodeB in interface Graph<N,​E>
      Parameters:
      nodeB - Вершина Б
      Returns:
      Ребра
    • clearEdges

      public void clearEdges()
      Description copied from interface: Graph
      Удаляет все ребра
      Specified by:
      clearEdges in interface Graph<N,​E>
    • clearAll

      public void clearAll()
      Description copied from interface: Graph
      Удалес все ребра и вершины
      Specified by:
      clearAll in interface Graph<N,​E>
    • hasEdge

      public boolean hasEdge​(N a, N b)
      Description copied from interface: Graph
      Проверка наличия ребра между вершинами
      Specified by:
      hasEdge in interface Graph<N,​E>
      Parameters:
      a - Вершина А
      b - Вершина Б
      Returns:
      Флаг наличия ребра
    • removeEdge

      public void removeEdge​(N a, N b)
      Description copied from interface: Graph
      Удаление ребра
      Specified by:
      removeEdge in interface Graph<N,​E>
      Parameters:
      a - Вершина А
      b - Вершина Б
    • getEdge

      public E getEdge​(N a, N b)
      Description copied from interface: Graph
      Возвращает ребро между вершинами
      Specified by:
      getEdge in interface Graph<N,​E>
      Parameters:
      a - Вершина А
      b - Вершина Б
      Returns:
      Ребро
    • setEdge

      public void setEdge​(N a, N b, E edge)
      Description copied from interface: Graph
      Установка ребра между вершинами
      Specified by:
      setEdge in interface Graph<N,​E>
      Parameters:
      a - Вершина А
      b - Вершина Б
      edge - Ребро
    • getEdges

      public java.lang.Iterable<E> getEdges​(N a, N b)
      Description copied from interface: Graph
      Возвращает ребра между вершинами
      Specified by:
      getEdges in interface Graph<N,​E>
      Parameters:
      a - Вершина А
      b - Вершина Б
      Returns:
      Ребра
    • setEdges

      public void setEdges​(N a, N b, java.lang.Iterable<E> edges)
      Description copied from interface: Graph
      Установка ребр между вершинами
      Specified by:
      setEdges in interface Graph<N,​E>
      Parameters:
      a - Вершина А
      b - Вершина Б
      edges - Ребра
    • get

      public E get​(N a, N b)
      Description copied from interface: SingleGraph
      Возвращает ребро между вершинами
      Specified by:
      get in interface SingleGraph<N,​E>
      Parameters:
      a - Вершина А
      b - Вершина Б
      Returns:
      Ребро
    • set

      public void set​(N a, N b, E e)
      Description copied from interface: SingleGraph
      Устанавливает/Сбрасывает ребро между вершинами
      Specified by:
      set in interface SingleGraph<N,​E>
      Parameters:
      a - Вершина А
      b - Вершина Б
      e - Ребро