kruskals-algorithm

    3熱度

    1回答

    我發現使用Kruskal算法的最小生成樹模板here 他們使用整數重量,是可能的,如果我要實現的代碼使用雙重重量? 我在這裏和那裏做了更改,並一直給我錯誤。 這是我改變了: ​​ 和 double myComp(const void* a, const void* b) { struct Edge* a1 = (struct Edge*)a; struct Edg

    0熱度

    1回答

    我必須在Java中實現Kruskal's Algorithm。 我有我得到權重來排序的邊緣部分,但我有點失去的時候我要考慮結構保存每個樹的集合。 我以爲有一組向量,其中每組表示一棵樹。但如果我必須將兩棵樹結合在一起,我不知道該怎麼辦。從矢量中刪除兩個元素並添加一個新的組合元素? 是否有一種結構可以使它更容易? 我需要的是: 遍歷所有集合從一組主要 添加元素的集合中的一個,或 創建一個新的集,並將其

    0熱度

    1回答

    設G =(V,E)爲加權的連通無向圖。設T是在Kruskal算法中生長的邊集,並在k次迭代後停止(因此T可能包含小於| E | -1的邊)。設W(T)是該集合的加權和。設T'爲非零邊集,使| T | = | T'|。證明W(T)< = W(T') 我理解算法的原始證明,並且我嘗試了幾種方法來解決這個問題,但都沒有成功。 例如:我認爲在| T |可能會工作。 For | T | = 1很明顯。 我們

    0熱度

    1回答

    設G =(V,E)爲加權的,連通的和無向的圖。描述了一個高效的算法,決定是否有G. ,我已經解決了是輕鬆了許多以前的問題恰好2個不同的MSTS: 描述一個高效的算法,決定是否有隻有一個MST在G. 這就是我解決後一個問題的方法: 我們運行Kruskal算法,然後用藍色着色新的MST的邊緣,其餘的邊緣用紅色着色。 然後,我用另一個簡單的算法,我們已經看到(使用Kruskal),在包含最大數量的紅色邊

    0熱度

    1回答

    我做了以下節點和弧結構: struct arc { int length; string start; string end; arc(int k,string s,string e) { this->length = k; this->start = s; this->end = e; } }; struct node

    0熱度

    1回答

    我很困惑這個程序。截至目前,我有一個圖形的邊緣對象。該邊緣對象需要一個權重和兩個頂點對象。我已經創建了一個頂點對象的類,以及爲邊緣對象的類: 頂點: public class Vertex { private final Key key; private Vertex predecessor; private Integer rank; public Vertex(String valu

    0熱度

    2回答

    如果對空間沒有限制,那麼假定圖形將被打包,選擇什麼樣的預處理kruskals算法是最好的數據結構。 我想使用單鏈表實現

    2熱度

    2回答

    我如何用Kruskal算法計算最小生成樹im R(3.0.0 - Linux x32)? 我創建一個加權全圖用的igraph(0.6.5)庫作爲folws: set.seed(1234567890) g <- graph.full(n = 20) E(g)$weight <- round(runif(ecount(g)), 2) * 100 ,我能夠用普里姆(IGRAPH)到calcuta

    1熱度

    1回答

    最近我已經學習了關於圖論的知識,並試圖實現Kruskal算法來找到最小值。使用權重矩陣生成圖中的生成樹。我爲矩陣獲得了正確的輸出,併爲另一個輸出了出界誤差! 它給了我一個錯誤: [[1000,16,12,21,1000,1000,1000],[16,1000,1000,17,20,1000,1000],[12,1000,1000,28,1000,31,1000],[21,17,28,1000,18

    0熱度

    1回答

    我學習最小生成樹,我遇到了這個問題,並決定給它一個鏡頭... 實現最小隨機生成有向圖網絡上生成樹算法 100個頂點和800個邊緣 public static int[][] getRandomArray(int n){ int[][] a = new int[n][n]; Random r = new Random(); for(int i = 0; i < a.l