def node_connected_component(G, n): """ Return a list of nodes of the connected component containing node n. For undirected graphs only. """ if G.directed: raise networkx_v099.NetworkXError,\ """Not allowed for directed graph G. Use UG=G.to_undirected() to create an undirected graph.""" return single_source_shortest_path_length(G, n).keys()
def node_connected_component(G,n): """ Return a list of nodes of the connected component containing node n. For undirected graphs only. """ if G.directed: raise networkx_v099.NetworkXError,\ """Not allowed for directed graph G. Use UG=G.to_undirected() to create an undirected graph.""" return single_source_shortest_path_length(G,n).keys()
def connected_components(G): """ Return a list of lists of nodes in each connected component of G. The list is ordered from largest connected component to smallest. For undirected graphs only. """ if G.directed: raise networkx_v099.NetworkXError,\ """Not allowed for directed graph G. Use UG=G.to_undirected() to create an undirected graph.""" seen = {} components = [] for v in G: if v not in seen: c = single_source_shortest_path_length(G, v) components.append(c.keys()) seen.update(c) components.sort(lambda x, y: cmp(len(y), len(x))) return components
def connected_components(G): """ Return a list of lists of nodes in each connected component of G. The list is ordered from largest connected component to smallest. For undirected graphs only. """ if G.directed: raise networkx_v099.NetworkXError,\ """Not allowed for directed graph G. Use UG=G.to_undirected() to create an undirected graph.""" seen={} components=[] for v in G: if v not in seen: c=single_source_shortest_path_length(G,v) components.append(c.keys()) seen.update(c) components.sort(lambda x, y: cmp(len(y),len(x))) return components
def eccentricity(G, v=None, sp=None, with_labels=False): """Return the eccentricity of node v in G (or all nodes if v is None). The eccentricity is the maximum of shortest paths to all other nodes. The optional keyword sp must be a dict of dicts of shortest_path_length keyed by source and target. That is, sp[v][t] is the length from v to t. If with_labels=True return dict of eccentricities keyed by vertex. """ nodes = [] if v is None: # none, use entire graph nodes = G.nodes() elif isinstance(v, list): # check for a list nodes = v else: # assume it is a single value nodes = [v] order = G.order() e = {} for v in nodes: if sp is None: length = single_source_shortest_path_length(G, v) else: length = sp[v] try: assert len(length) == order except: raise networkx_v099.NetworkXError, "Graph not connected: infinite path length" e[v] = max(length.values()) if with_labels: return e else: if len(e) == 1: return e.values()[0] # return single value return e.values()
def eccentricity(G, v=None, sp=None, with_labels=False): """Return the eccentricity of node v in G (or all nodes if v is None). The eccentricity is the maximum of shortest paths to all other nodes. The optional keyword sp must be a dict of dicts of shortest_path_length keyed by source and target. That is, sp[v][t] is the length from v to t. If with_labels=True return dict of eccentricities keyed by vertex. """ nodes = [] if v is None: # none, use entire graph nodes = G.nodes() elif isinstance(v, list): # check for a list nodes = v else: # assume it is a single value nodes = [v] order = G.order() e = {} for v in nodes: if sp is None: length = single_source_shortest_path_length(G, v) else: length = sp[v] try: assert len(length) == order except: raise networkx_v099.NetworkXError,\ "Graph not connected: infinite path length" e[v] = max(length.values()) if with_labels: return e else: if len(e) == 1: return e.values()[0] # return single value return e.values()