0
Q
圖:節點依賴關係
A
回答
0
相關結構是partially ordered set。我有我覆蓋有2種方法(在python)類似的情況:
nodes_to_update(to_proc)
參數是一組節點的開始與(例如設置([8]))。返回兩組節點:一組給定節點依賴的所有節點以及一組葉節點。想法是遞歸訪問依賴訪問節點的所有節點。sequence_to_update(to_proc)
參數如上所述。返回(排序)的節點列表,以便列表中的節點只依賴列表中的節點。它通過將葉節點添加到有序列表以及更新要處理的節點集(全部和葉節點)完成。
從屬節點獲得方法down_nodes(o_id)
和依賴的節點與up_nodes(o_id)
得到。
def nodes_to_update(self, to_proc):
all_to_update, first_to_update = set(), set()
while to_proc:
n = to_proc.pop()
all_to_update.add(n)
ds = self.down_nodes(n) # nodes on which n depends
if not ds:
first_to_update.add(n)
else:
to_proc.update(ds)
return all_to_update, first_to_update
def sequence_to_update(self, to_proc):
all_to_update, first_to_update = self.nodes_to_update(to_proc)
update_in_order = []
while first_to_update:
n_id = first_to_update.pop()
all_to_update.discard(n_id)
update_in_order.append(n_id)
# nodes which depend on n_id (intersection of upper nodes and all nodes to update)
for up_id in (self.up_nodes(n_id) & all_to_update):
if all(d not in all_to_update for d in self.down_nodes(up_id)):
first_to_update.add(up_id)
return update_in_order
相關問題
- 1. 節點package.json依賴關係
- 2. 依賴關係的nuget依賴關係
- 3. 結構圖 - 具有依賴關係的安裝依賴關係
- 4. Android依賴關係圖
- 5. Visual Maven依賴關係圖
- 6. 更改依賴關係圖
- 7. 依賴關係
- 8. 需要節點模塊中另一個依賴關係的依賴
- 9. Hudson依賴關係
- 10. tools.jar依賴關係
- 11. URLClassloader依賴關係
- 12. WildFly依賴關係
- 13. flickrj依賴關係
- 14. DLL依賴關係
- 15. Python依賴關係?
- 16. Eclipse:Android依賴關係
- 17. automake依賴關係
- 18. Knockoutjs依賴關係
- 19. Maven依賴關係
- 20. asyntasks依賴關係
- 21. Webkit依賴關係
- 22. iMX31依賴關係?
- 23. Maven依賴關係
- 24. SharedPreferences依賴關係
- 25. Jira依賴關係
- 26. Scala:Spec2依賴關係
- 27. NetSSL依賴關係?
- 28. UML依賴關係
- 29. 使用另一個節點版本重新編譯節點依賴關係
- 30. 應用程序的節點程序包依賴關係