2
我需要找到類之間循環依賴,我立即從「算法與數據結構」當然記得兩兩件事:在項目中尋找循環依賴的算法是什麼?
1)尋找一個單向鏈表(環路Floyd的循環查找算法)
2)深度優先搜索
所以,我有檢查循環依賴
private void FindDependency(IDictionary<string, IEnumerable<string>> serviceDependence)
在輸入的方法,我們有一個包含,例如一個字典,<"A", < "B", "C" >>
和<"B", < "A", "D" >>
,這意味着類A
取決於類B
和C
。在輸出結果中,我們在A->B
之間存在循環依賴關係(在更復雜的情況下,它將是一個依賴關係鏈)。
我應該使用哪種算法?爲什麼?
建立你的依賴關係圖的dfs-tree並找回後邊緣會正常工作。 – sashas
這是一個重複的http://stackoverflow.com/questions/29703972/in-c-how-to-find-chain-of-circular-dependency –
萬一你不想只檢查那些週期,但也做一個拓撲排序:那些通常找到循環無論如何(每失敗) – Carsten