kCoreVertices<V> function

Set<V> kCoreVertices<V>({
  1. required Iterable<V> vertices,
  2. required Iterable<V> neighboursOf(
    1. V vertex
    ),
  3. required int k,
  4. StorageStrategy<V>? vertexStrategy,
})

Computes the set of vertices belonging to the k-core of a graph.

Implementation

Set<V> kCoreVertices<V>({
  required Iterable<V> vertices,
  required Iterable<V> Function(V vertex) neighboursOf,
  required int k,
  StorageStrategy<V>? vertexStrategy,
}) {
  vertexStrategy ??= StorageStrategy.defaultStrategy();
  final cores = coreNumbers<V>(
    vertices: vertices,
    neighboursOf: neighboursOf,
    vertexStrategy: vertexStrategy,
  );
  final result = vertexStrategy.createSet();
  for (final entry in cores.entries) {
    if (entry.value >= k) {
      result.add(entry.key);
    }
  }
  return result;
}