我有一个大图,我正在使用JUNG处理。我想知道JUNG是否提供了一种方法来提取一个顶点的两跳邻域(其中包含所有边缘)到一个单独的图形中?
答案 0 :(得分: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
图表与原始图表属于同一类别。您必须为每个不同的起始节点创建一个新过滤器。
答案 1 :(得分:0)
尝试edu.uci.ics.jung.algorithms.connectivity.KNeighborhoodExtractor