Q
兩個網絡圖的聯合
7
A
回答
4
簡答題
- 聯合節點集。
- 聯合邊集。
龍答案
我假設你正在使用的圖形數據結構,其中有Node
情況,其中每個Node
有string Name
和list<Node> Next
。
我們打電話給你的兩張圖G
和H
,其中圖是list<Node>
。
令GNames
和HNames
是每個圖中節點名稱的集合。假設MNames
是GNames
和HNames
的聯合。
創建一個新圖list<Node> M
其中有一個新的Node
爲MNames
中的每個名稱。
構建map<string, Node> GLookup, HLookup, MLookup
作爲從節點名到Node
的映射,對於list<Node> G, H, M
中的每一個。
對於這個新圖M
每個Node u
,在NextNames
計算NextNames
爲GLookup[u.Name].Next.Select(v => v.Name)
和HLookup[u.Name].Next.Select(v => v.Name)
工會,然後爲每個名字name
,加MLookup[name]
到u.Next
。
M
現在是您的合併圖。
僞
list<Node> merge(list<Node> G, list<Node> H)
GNames = G.Select(u => u.Name)
HNames = H.Select(u => u.Name)
MNames = union(GNames, HNames)
M = MNames.Select(name => new Node(name))
GLookup = G.ToMap(u => u.Name)
HLookup = H.ToMap(u => u.Name)
MLookup = M.ToMap(u => u.Name)
foreach u in M
NextNames = union(
GLookup[u.Name].Next.Select(v => v.Name),
HLookup[u.Name].Next.Select(v => v.Name))
foreach name in NextNames
u.Next.Add(MLookup[name])
return M
4
通常圖形可以表示爲任一鄰接矩陣或鄰接列表。無論哪種方式聯合他們並不難。
從鄰接表的角度來看,你有
list1 = [[A,[B,K]],[B,[C,D,E]],...]
list2 = [[A,[B]],[B,[C,D,E]],...]
因此,所有你必須做的就是工會在鄰接表
list3 = [[A,UNION([B,K],[B])]...]
對於鄰接矩陣每個節點的子列表,它是不重要的。簡單地通過矩陣中的每個的aij循環,並且如果它是0,並且在另一矩陣中的對應條目是1,則設置爲1。
如果圖1具有類似:
A B C
A 1 1 0
B 0 1 0
C 0 1 1
和圖形2有這樣的事情:
A B C
A 1 1 0
B 0 1 1
C 0 0 1
然後圖3最終會
A B C
A 1 1 0
B 0 1 1
C 0 1 1
相關問題
- 1. 組合兩個網絡
- 2. 如何結合兩個神經網絡?
- 3. 合成網絡圖
- 4. 如何連接兩個無線網絡共享互聯網?
- 5. 兩個向量的聯合
- 6. 聯合兩個表sqlite3
- 7. 聯合兩個陣列
- 8. 聯合兩個查詢PostgreSQL
- 9. 互聯網上的兩個Android設備之間的直接TCP/IP網絡
- 10. 兩個表的聯合創建視圖,合併行
- 11. 如何合併兩個張量在火炬網絡的開始?
- 12. 結合兩個現有的註釋元素(PDFTron網絡SDK)
- 13. 跨兩個專用網絡的網絡通信
- 14. 面向混合的多圖網絡x
- 15. 兩個聯合使用stl的聯合計數元素
- 16. Tensorflow:如何合理地合併兩個神經網絡層到一個
- 17. 兩個網絡之間的Linux路由
- 18. 將兩個SQL查詢合併爲網絡利用
- 19. TensorFlow:一個網絡,兩個GPU?
- 20. 兩個連接的JPQL聯合
- 21. Excel VBA:找到兩個表的聯合
- 22. 兩個RDD元素的聯合
- 23. 的Oracle SQL - 聯合兩個SELECT語句
- 24. 兩個不同表的Sybase SQL聯合
- 25. 兩個鏈接列表的聯合 - C++
- 26. 兩個默認字典的聯合
- 27. MongoDB的像兩個領域聯合與
- 28. 創建兩個詞典的聯合
- 29. 兩個IEnumerable和IQueryable列表的聯合
- 30. 用ns-3創建兩個無線網絡和一個以太網網絡
這絕對是正確的,但是這是一個多數據結構操作的數學運算。實際上,實現這一點需要根據圖表的表示方式進行一些工作。 – templatetypedef
@templatetypedef我對基於節點類的圖表示進行了擴展。 –
謝謝......起初我不喜歡簡短的答案......但後來我考慮了30秒並得到它! :) –