3

我有一个正在使用 JUNG 处理的大图。我想知道 JUNG 是否提供了一种方法来提取一个顶点的 2 跳邻域(其中包含所有边)到一个单独的图中?

4

2 回答 2

7

在 JUNG 2.0 中,它是edu.uci.ics.jung.algorithms.filters.KNeighborhoodFilter

一种过滤器,用于提取一个或多个根节点周围的 k 邻域。k 邻域定义为由距根节点 k 跳或更少跳(未加权最短路径距离)的顶点集诱导的子图。

下面是你如何使用它(假设你已经有一个图和顶点/边类型):

Graph<V, E> graph = // ...
int k = 3; // maximum hops
V startVertex = // ... (pick your starting node)
Filter<V, E> filter = new KNeighborhoodFilter<V, E>(
    startVertex, k, EdgeType.IN_OUT);
Graph<V, E> neighborhood = filter.transform(graph);

neighborhood图将与您的原始图属于同一类。您必须为每个不同的起始节点创建一个新过滤器。

于 2010-07-29T16:10:04.720 回答
0

尝试edu.uci.ics.jung.algorithms.connectivity.KNeighborhoodExtractor

于 2010-07-07T21:25:51.480 回答