我有他們之間的組件和關係圖。用戶使用根組件開始導航。他單擊組件上的展開按鈕以顯示與當前組件相關的新組件。圖導航問題
問題在於用戶決定摺疊節點時。我必須選擇一個子樹來隱藏,同時使圖形保持一致的狀態,以便沒有展開的節點與圖中另一個節點的關係不存在。
現在如果組件之間出現循環/循環,我很難選擇子樹。爲了簡單起見,我選擇他們擴展的順序。因此,如果A展開到B和C展開,A將隱藏它創建的節點和邊緣。現在考慮下面的情況。
[ - ]表示展開狀態,[+]表示尚未展開。 A被展開以顯示B和C.然後B被展開以顯示D. C被展開,其在C和退出節點D之間創建鏈接並且還創建節點E.現在用戶決定摺疊B.由於通過展開順序D是B的孩子它會崩潰和隱藏D.這種離開圖的狀態不一致,因爲C對D具有邊緣,但D不再存在,如果我刪除CD邊緣,它仍然不一致。如果我摺疊C.而E又是一個循環鏈接,例如A會產生同樣的問題。
/-----B[-]-----\
A[-] D[+]
\-----C[-]-----/
\
E[+]
所以,大家任何想法我怎麼能解決這個問題。用戶需要瀏覽圖形,應該能夠崩潰,但我堅持循環節點的問題,在這種情況下任何節點在循環中如果崩潰都會使圖形處於不一致的狀態。
@Matthieu M.對不起,我有糟糕的一天,我的反應是不夠的,雖然我真的有一個理解問題的問題。 – 2010-04-29 22:10:31
@affan請接受我的道歉,我不想粗魯。 – 2010-04-29 22:11:23
gabriel沒問題 – affan 2010-05-03 11:53:08