我有一個用 jgrapht 庫表示的樹,有多種類型的節點,我需要從特定的節點類型開始切割任何子樹。正如您在此示例中所看到的,該樹代表 Java 類的源代碼。我需要通過拆分從每個“Entry”節點類型開始的主樹來創建多個 jgrapht 對象??偣参覒搹倪@棵大樹中得到 7 棵樹。我使用的結構是DirectedPseudograph.
1 回答

莫回無
TA貢獻1865條經驗 獲得超7個贊
雖然我不是 100% 清楚你想要什么,但似乎有多種解決方法。
從根節點的每個傳出鄰居開始,您可以運行深度優先搜索并記錄返回的節點。DFS算法可達的節點屬于同一子樹。為此,您可以使用DepthFirstIterator
您可以創建沒有根節點的子圖,例如使用AsSubgraph類。然后,您可以在生成的導出子圖上調用ConnectivityInspector 。由于每個子樹都是一個斷開連接的圖形組件,因此連接檢查器將能夠找到每個組件。
順便說一句,除非您需要偽圖的功能,否則為了性能,最好使用 SimpleDirectedGraph。顯然,后者不允許平行邊或自環。
添加回答
舉報
0/150
提交
取消