bundles / scipy 1.17.1 / scipy / sparse / csgraph / _traversal / depth_first_order
cython_function_or_method
scipy.sparse.csgraph._traversal:depth_first_order
Signature
def depth_first_order ( csgraph , i_start , directed = True , return_predecessors = True ) Summary
Return a depth-first ordering starting with specified node.
Extended Summary
Note that a depth-first order is not unique. Furthermore, for graphs with cycles, the tree generated by a depth-first search is not unique either.
Parameters
csgraph: array_like or sparse array or matrixThe N x N compressed sparse graph. The input csgraph will be converted to csr format for the calculation.
i_start: intThe index of starting node.
directed: bool, optionalIf True (default), then operate on a directed graph: only move from point i to point j along paths csgraph[i, j]. If False, then find the shortest path on an undirected graph: the algorithm can progress from point i to j along csgraph[i, j] or csgraph[j, i].
return_predecessors: bool, optionalIf True (default), then return the predecessor array (see below).
Returns
node_array: ndarray, one dimensionThe depth-first list of nodes, starting with specified node. The length of node_array is the number of nodes reachable from the specified node.
predecessors: ndarray, one dimensionReturned only if return_predecessors is True. The length-N list of predecessors of each node in a depth-first tree. If node i is in the tree, then its parent is given by predecessors[i]. If node i is not in the tree (and for the parent node) then predecessors[i] = -9999.
Notes
If multiple valid solutions are possible, output may vary with SciPy and Python version.
Examples
from scipy.sparse import csr_array from scipy.sparse.csgraph import depth_first_order✓
graph = [ [0, 1, 2, 0], [0, 0, 0, 1], [2, 0, 0, 3], [0, 0, 0, 0] ] graph = csr_array(graph)✓
print(graph)
✗depth_first_order(graph,0)
✓Aliases
-
scipy.sparse.csgraph.depth_first_order