1
實現我的圖如下哈希表:實現Dijkstra的在Java中使用算法的散列碼
public class DiGraphHash{
private int numNodos, numArcos;
private TheList<Nodo> nodos[];
private TheList<Arco> arcos[];
private TheList<Arco> preds[];
}
其中的thelist,是我自己做了一個列表。
對於Dijkstra算法,我需要映射每個節點的成本和到達該節點的路徑。 我有以下兩個數組:
int[] cost = new cost[num_nodes];
Nodo[] path = new Nodo[num_nodes];
另一個重要細節,就是我的節點將是字母A,B,C,D
所以,當我映射我的節點,例如可以說我必須爲節點A分配成本,我如何在數組中找到位置?
我在考慮使用哈希碼%array.length的,但我不知道我是否會得到碰撞(考慮到這將是隻有1字符字母)
我不是問的代碼,需要這個想法。
確定我喜歡這個主意!謝謝。 以及如何做到這一點:爲每個節點保存最短的「路徑」我將創建一個List數組,其中列表包含Arco(英文弧),這樣我可以使用Hashcode來查找節點的Arc ,Arc的源代碼將成爲「最短的前奏者,不知道我是否自我解釋好了」 – Alessandroempire 2013-02-23 20:38:47
這聽起來很有希望,你也可以查看其他人的Java實現:http://en.literateprograms.org/Dijkstra %27s_algorithm_%28Java 29% – 2013-02-24 11:59:25