Interface ElementGraph

Интерфейс для создания и управления графом элементов. Обеспечивает методы для генерации графа, поиска элементов, получения информации о подключённых и неподключённых соединениях, а также выполнения обхода графа различными способами.

interface ElementGraph {
    tree: ElementGraphNode[];
    findElement(pointElement: Element): false | ElementGraphNode;
    genGraph(pointElement: Element): void;
    getAllElementsBFS(): Element[];
    getAllElementsDFS(): Element[];
    getAllNodeBFS(): ElementGraphNode[];
    getAllNodeDFS(): ElementGraphNode[];
    getConnectionsNode(node: ElementGraphNode): Connection[];
    getGenerators(): Element[];
    getInputs(): SourcesArray;
    getOutputs(): Connection[];
    getSetNodeDFS(): ElementGraphNode[];
}

Implemented by

Properties

  • Граф элементов, представленный в виде массива узлов графа. Каждый узел описывает элемент и его связи в графе.

Methods

    • Находит элемент в графе. Возвращает узел графа, связанный с указанным элементом, или false, если элемент не найден.

    Parameters

    • pointElement: Element

      Элемент, который нужно найти в графе.

    Returns false | ElementGraphNode

    Узел графа или false, если элемент не найден.

    • Генерирует граф элементов начиная с указанного элемента.

    Parameters

    • pointElement: Element

      Начальный элемент для генерации графа.

    Returns void

    • Возвращает все элементы графа, используя алгоритм обхода в ширину (BFS). Элементы возвращаются в порядке обхода.

    Returns Element[]

    Массив элементов, отсортированный по результатам обхода в ширину.

    • Возвращает все элементы графа, используя алгоритм обхода в глубину (DFS). Элементы возвращаются в порядке обхода.

    Returns Element[]

    Массив элементов, отсортированный по результатам обхода в глубину.

    • Возвращает узлы графа с уникальными элементами, используя алгоритм обхода в ширину (BFS). Алгоритм устроен не совсем так как у обычного дерева: если все элементы, к которым подключен текущий анализируемый элемент уже есть в массиве то элемент подключается. Это позволяет избежать при симуляциях неизвестных значений и симулировать все элементы по порядку. Узлы содержат элементы и их соединения.

    Returns ElementGraphNode[]

    Массив узлов графа, отсортированный по результатам обхода в ширину.

    • Возвращает все узлы графа, используя алгоритм обхода в глубину (DFS). Узлы содержат элементы и их соединения.

    Returns ElementGraphNode[]

    Массив узлов графа, отсортированный по результатам обхода в глубину.

    • Находит все соединения, к которым подключен данный узел

    Parameters

    Returns Connection[]

    Массив соединений

    • Возвращает массив генераторов, которые присутствуют в графе. Генераторы — это элементы, создающие сигнал (например, генераторы меандра).

    Returns Element[]

    Массив элементов-генераторов.

    • Возвращает массив входных соединений, которые ни к чему не подключены.

    Returns SourcesArray

    Массив незадействованных входных соединений.

    • Возвращает массив выходных соединений, которые ни к чему не подключены.

    Returns Connection[]

    Массив незадействованных выходных соединений.

    • Возвращает уникальные узлы графа, используя алгоритм обхода в глубину (DFS). Уникальные узлы — это узлы, которые встречаются в графе только один раз.

    Returns ElementGraphNode[]

    Массив уникальных узлов графа, отсортированных по результатам обхода в глубину.