-
-
Uchiha_Obito
2017-09-01
- 调用完getMinEdge函数后,要清空edgeVec,否则造成输出异常。
这是我在研究了一天后得出的结论。。。
-
1赞 · 1采集
-
-
骑鹤的猫
2017-08-28
- //判断是否形成回环,形成回环时,此最小权值的边应该舍去
if (m_pNodeArray[edgeVec[i].m_iNodeIndexB].m_bIsVisited)
{
continue;
}
-
0赞 · 0采集
-
-
精慕门4947531
2016-11-10
- void DMap::primTree(int nodeIndex)
{
int value=0;
int edgeCount=0;
vector<int>nodeVect;
vector<Edge> edgeVect;
edgeVect.push_back(nodeIndex);
cout<<m_pNodeArray[nodeIndex].m_cData<<endl;
while(edgeCount < m_iCapacity-1)
{
int temp=nodeVect.back();
for(int i=0;i<m_iCapacity;i++)
{
getValueFromMatrix(temp,i,value);
if(value!=0)
{
if(m_pNodeArray[temp].m_bVisited)
{
continue;
}
else
{
Edge edge(temp,i,value);
edgeVect.push_back(edge);
}
}
}
int edgeIndex=getMinEdge(edgeVect);
edgeVect[edgeIndex].m_bSelected=true;
cout<<edgeVect[edgeIndex].m_iNodeIndexA<<"-------"<<edgeVect[edgeIndex].m_iNodeIndexA<<" ";
cout<<edgeVect[edgeIndex].m_iWeightValue<<endl;
m_pEdge[edgeCount]=edgeVect[edgeIndex];
edgeCount++;
int nextNodeindex=edgeVect[edgeIndex].m_iNodeIndexB;
nodeVect.push_back (nextNodeindex);
m_pNodeArray[nextNodeindex].m_bVisited=true;
cout<<m_pNodeArray[nextNodeindex].m_cData<<endl;
}
}
-
0赞 · 1采集
-
-
Swordsemperor
2016-10-13
- int Cmap::getMiniEdge(vector<edge> edgeVec) {
int index=0;
int val = edgeVec[0].value;
for (int i = 0; i < edgeVec.size(); i++) {
if (!edgeVec[i].visited) {
if (val > edgeVec[i].value) {
index = i;
val = edgeVec[i].value;
}
}
}
return index;
}
-
0赞 · 1采集