findCentralNodes method

Set<Node> findCentralNodes()

Находит центральные узлы графа Центральным считается узел, от которого максимальное расстояние до любого листа минимально

Implementation

Set<Node> findCentralNodes() {
  if (nodes.length <= 2) return nodes.values.toSet();

  var current = nodes.values.toSet();

  while (current.length > 2) {
    final leaves = current
        .where(
          (node) => getNodeEdges(node).intersection(current).isEmpty,
        )
        .toSet();

    current = current.difference(leaves);
  }

  return current;
}