2010-07-01 5 views

Répondre

0

Try edu.uci.ics.jung.algorithms.connectivity.KNeighborhoodExtractor

+0

C'est à partir de la JUNG 1.x maintenant très périmée. La réponse ci-dessus est correcte. –

7

Dans JUNG 2.0 il est edu.uci.ics.jung.algorithms.filters.KNeighborhoodFilter:

Un filtre utilisé pour extraire le k-voisinage autour d'un ou plusieurs nœud racine (s). Le voisinage-k est défini comme le sous-graphe induit par l'ensemble de sommets qui sont k ou moins de sauts (distance non pondérée du plus court chemin) en s'éloignant du nœud racine.

Voilà comment vous utiliseriez (vous avez déjà en supposant un graphique et sommet/types arêtes):

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); 

Le graphique neighborhood sera de la même classe que votre graphique d'origine. Vous devrez créer un nouveau filtre pour chaque noeud de démarrage différent.

+1

pouvez-vous fournir un exemple de code? – Daniel

+0

@Christoph, merci de poster cet exemple de code, ça m'a beaucoup aidé. Je sais que ce billet a quatre ans, mais bon, je viens juste de tomber sur cette réponse et c'est de loin la meilleure. Cela devrait être marqué comme la bonne réponse! – David

Questions connexes