import Vertex from "./Vertex.js"; import Edge from "./Edge.js"; /** * Класс, описывающий способ хранения графа */ export default interface GraphStore> { /** * Получить вершину из графа по её уникальному идентификатору * @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; }