最新回答 / 董瘦瘦
這是克魯斯卡爾算法的原理啊在鄰接矩陣?yán)锶〕鏊羞吅笳页鲎钚∵呑钚∵厡?yīng)的點不在集合中則添加進(jìn)去一個在的話則把另一個添加到該點集合中兩個都在同一個點集合中,只能拋棄這條邊,為什么呢?因為會形成回環(huán)。例如:有一個點集合為{A,B,C},要找的邊為AC,對應(yīng)兩個點都在,再選AC這條邊的話A-B,B-C,A-C就形成回環(huán),所以在程序里continue跳過兩個點在不同的點集合中,說明這兩個點集合代表的邊可以通過當(dāng)前這條邊連接起來,對應(yīng)程序里的處理就是拼接兩個vector
2020-02-10
最新回答 / 國寶阿寶
想明白了。應(yīng)該以“這一層”和“下一層”的說法來說好理解一些,畢竟以“上一層”來說,是以正在查找的和preVec里的節(jié)點有連接的節(jié)點所構(gòu)成的一層節(jié)點為參照點,然而這一層節(jié)點是不一定有的。
2019-08-15
最新回答 / 夜木凝冰
????按道理講,創(chuàng)建動態(tài)分配的數(shù)組時是不可以初始化的,只能在后續(xù)將其所有元素逐一設(shè)置為零。????所以,在構(gòu)造函數(shù)中創(chuàng)建完矩陣數(shù)組后,是需要給數(shù)組全部元素賦值為零的。否則就是隨機數(shù)。????有個便捷函數(shù)是:memset(m_pMatrix, 0, m_iCapacity *m_iCapacity * sizeof(int));。教程里面也有的。
2019-08-08
最新回答 / 木木暮
你的意思是在for (int i = 0; i < m_iCapacity; i++)前用?m_pNodeArray[temp].m_bIsVisited?=?true;嗎?這樣效果是一樣的,當(dāng)把點放進(jìn)去時就已經(jīng)用到了,等下加下一個的時候才設(shè)置為已訪問有點說不過去
2019-07-27
最新回答 / 慕斯卡4155732
想通了,遞歸調(diào)用實際上是一個嵌套循環(huán),它需要一層一層的從內(nèi)將每一個for循環(huán)執(zhí)行完再跳出當(dāng)前循環(huán),直到跳到第一個for循環(huán),并繼續(xù)執(zhí)行下去。這個時候nodeIndex=0,i=2,再在第一行尋找下一個點即D
2018-12-31