ds-kit-js - v1.1.0
    Preparing search index...

    Class DisjointSet<T>

    Система непересекающихся множеств (Union-Find) со сжатием путей и объединением по рангу. find/union — почти O(1) (обратная функция Аккермана). Применяется для поиска компонент связности, алгоритма Краскала и т. п.

    const ds = new DisjointSet(['a', 'b', 'c']);
    ds.union('a', 'b');
    ds.connected('a', 'b'); // true
    ds.setCount; // 2

    Type Parameters

    • T
    Index
    • get size(): number

      Количество элементов.

      Returns number

    • get setCount(): number

      Количество непересекающихся множеств.

      Returns number

    • Добавляет элемент как отдельное множество. Возвращает false, если он уже есть.

      Parameters

      • value: T

      Returns boolean

    • Представитель множества, содержащего value; undefined, если элемента нет.

      Parameters

      • value: T

      Returns T | undefined

    • Объединяет множества, содержащие a и b. Отсутствующие элементы добавляются автоматически. Возвращает false, если они уже были в одном множестве.

      Parameters

      • a: T
      • b: T

      Returns boolean

    • Находятся ли a и b в одном множестве.

      Parameters

      • a: T
      • b: T

      Returns boolean

    • Все множества; каждое — массив элементов.

      Returns T[][]