| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- import Vertex from "./Vertex.js";
- import Edge from "./Edge.js";
- /**
- * Класс, описывающий способ хранения графа
- */
- export default interface GraphStore<V extends Vertex, E extends Edge<V>> {
- /**
- * Получить вершину из графа по её уникальному идентификатору
- * @param id Уникальный идентификатор вершины
- */
- getVertex(id: V["id"]): V|null;
- /**
- * Получение всех списков вершин в графе
- */
- getAllVertices(): V[];
- /**
- * Получить ребро из графа по её уникальному идентификатору
- * @param id Уникальный идентификатор ребра
- */
- getEdge(id: E["id"]): E|null;
- /**
- * Получение всех рёбер в графе
- */
- getAllEdges(): E[];
- /**
- * Получить вершины, смежные с указанной
- * @param id Уникальый идентификатор вершины, для которой необходимо найти смежные вершины
- */
- getAdjacentVertices(id: V["id"]): V[];
- /**
- * Получить список вершин графа, из которых можно попасть в данную вершину
- * @param id Уникальный идентификатор вершины, для которой нужно посчитать количество "входящих" вершин
- */
- getInputs(id: V["id"]): V[];
- /**
- * Получить список вершин графа, в которые можно попасть из данной веришны
- * @param id Уникальный идентификатор вершины, для которой нужно найти количество "исходящих" вершин
- */
- getOutputs(id: V["id"]): V[];
- /**
- * Получить ребра, инцидентные вершине
- * @param id Уникальный идентификатор вершины, для которой нужно получить инцидентные ребра
- */
- getIncidentEdges(id: V["id"]): E[];
- /**
- * Получение степени вершины в графе
- * @param id Уникальный идентификатор вершины, степень которой необходимо найти
- */
- getVertexDegree(id: V["id"]): number;
- }
|