當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Python SciPy csgraph.depth_first_order用法及代碼示例


本文簡要介紹 python 語言中 scipy.sparse.csgraph.depth_first_order 的用法。

用法:

scipy.sparse.csgraph.depth_first_order(csgraph, i_start, directed=True, return_predecessors=True)#

返回從指定節點開始的深度優先排序。

請注意,深度優先順序不是唯一的。此外,對於有環的圖,深度優先搜索生成的樹也不是唯一的。

參數

csgraph 數組 或稀疏矩陣

N x N 壓縮稀疏圖。輸入的 csgraph 將被轉換為 csr 格式進行計算。

i_start int

起始節點的索引。

directed 布爾型,可選

如果為 True(默認值),則對有向圖進行操作:僅沿著路徑 csgraph[i, j] 從點 i 移動到點 j。如果為 False,則在無向圖上找到最短路徑:算法可以沿著 csgraph[i, j] 或 csgraph[j, i] 從點 i 前進到 j。

return_predecessors 布爾型,可選

如果為 True(默認),則返回前趨數組(見下文)。

返回

node_array ndarray,一維

從指定節點開始的深度優先節點列表。 node_array的長度是從指定節點可到達的節點數。

predecessors ndarray,一維

僅當 return_predecessors 為 True 時才返回。深度優先樹中每個節點的前驅的 length-N 列表。如果節點 i 在樹中,則其父節點由前驅[i] 給出。如果節點 i 不在樹中(並且對於父節點),則前驅 [i] = -9999。

注意

如果可能存在多個有效解決方案,則輸出可能會因 SciPy 和 Python 版本而異。

例子

>>> from scipy.sparse import csr_matrix
>>> 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_matrix(graph)
>>> print(graph)
  (0, 1)    1
  (0, 2)    2
  (1, 3)    1
  (2, 0)    2
  (2, 3)    3
>>> depth_first_order(graph,0)
(array([0, 1, 3, 2], dtype=int32), array([-9999,     0,     0,     1], dtype=int32))

相關用法


注:本文由純淨天空篩選整理自scipy.org大神的英文原創作品 scipy.sparse.csgraph.depth_first_order。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。