我的英文不是很好,但我會盡我所能在這裏解釋我的問題。 我正在研究一個我必須創建圖形的應用程序。目前我正在使用GraphStream
。找到兩個節點之間的隱藏節點 - 圖 - java的
我圖的要求是非常複雜的,這就是:
我有一個名爲CDR表(呼叫數據記錄),其中我有2列A-號碼和B-號碼。表的結構非常清楚,它表明Anumber稱爲Bnumber,並且還有另一個DATETIME列,它顯示了調用的日期和時間。但我只需要兩列。
比方說,我們有4個數字的位置:123,456,789,000,表結構是這樣的
Anumber Bnumber
------- -------
123 456
123 789
456 789
789 000
456 000
我的表在這裏清楚地表明,123並沒有撥打000,但123叫456和789而這兩個數字叫000所以我必須拿出向圖可能這樣表示123->456->000
和132->789->000
所以,問題是我不知道如何找到123和000之間的路徑123和000之間。可能有2個以上的數字,比如5或6個數字,我有e找到所有給定的5或6個數字之間的隱藏數字AS在上述場景中456和789是隱藏數字132和000之間的數字。
另外一個問題是我的表格包含超過2000萬行,隨着用戶相互呼叫,行數將增長得非常快。
我做了什麼至今:
我已經做了一些[R & d在這個問題上,但可以沒有發現任何好的庫或這方面的任何解決方案。到目前爲止,我認爲Dijkstra's Algorithm
是最適合我的情況作爲GraphStream
幸運的是,提供了這種算法here。
我從你們想要什麼,給我一個想法,將這個算法會給我需要的結果,或者我要找到這將西裝最適合我的問題,任何其他算法中或圖形庫。我不擅長ALGO這就是爲什麼我在這裏得到任何幫助或指導如果你們可以給我。 感謝
在您鏈接的網頁,它說,有一些方法來遍歷的最短路徑。 (getPathEdges(Node),getPathEdgesIterator(Node),getPathNodes(Node)和getPathNodesIterator(Node))。我相信getPathEdges(Node)和getPathNodes(Node)會爲您提供所需的信息。嘗試使用它們並評論他們是否做了這項工作。 –
當然。我會嘗試一下,如果它根據我的需求發佈,我會在這裏發佈我的解決方案 –
不過,我建議您自己理解並實現Dijkstra的算法。這並不難理解,而且這種方式可以對其進行修改,以滿足您的任何需求。 –