亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

打印結果老是不對。

//普利姆算法
void?CMap::primTree(int?nodeIndex)?{
	vector<int>?nodeVec;
	vector<Edge>?edgeVec;
	int?value?=?0;
	int?edgeCount?=?0;
	nodeVec.push_back(nodeIndex);
	cout?<<?m_pNodeArray[nodeIndex].m_cData?<<?endl;
	m_pNodeArray[nodeIndex].m_bIsVisited?=?true;
	while?(edgeCount?<?m_iCapacity?-?1)?{
		int?temp?=?nodeVec.back();
		for?(int?i?=?0;?i?<?m_iCapacity;?++i)?{
			getValueFromMatrix(temp,?i,?value);
			if?(value?!=?0)?{
				if?(m_pNodeArray[i].m_bIsVisited)?{
					continue;
				}?else?{
					Edge?edge(value,?temp,?i);
					edgeVec.push_back(edge);
				}
			}?else?{
				continue;
			}

		}

		int?min?=?getMinEdge(edgeVec);

		edgeVec[min].m_bIsSelect?=?true;
		m_pEdgeArray[edgeCount]?=?edgeVec[min];
		edgeCount++;
		cout?<<?edgeVec[min].m_iNodeIndexA?<<?"---"
				<<?edgeVec[min].m_iNodeIndexB?<<?"????????";
		cout?<<?edgeVec[min].m_iWeightValue?<<?endl;
		int?bNodeIndex?=?edgeVec[min].m_iNodeIndexB;
		nodeVec.push_back(bNodeIndex);
		m_pNodeArray[bNodeIndex].m_bIsVisited?=?true;
		cout?<<?m_pNodeArray[bNodeIndex].m_cData?<<?endl;
	}
}
int?CMap::getMinEdge(vector<Edge>?vec)?{
	int?edgeIndex?=?0;
	int?minWeight?=?0;
	int?i?=?0;
	for?(;?i?<?vec.size();?++i)?{
		if?(!vec[i].m_bIsSelect)?{
			edgeIndex?=?i;
			minWeight?=?vec[i].m_iWeightValue;
			break;
		}
	}
	if?(minWeight?==?0)?{
		return?-1;
	}
	for?(;?i?<?vec.size();?++i)?{
		if?(vec[i].m_bIsSelect)?{
			continue;
		}?else?{
			if?(minWeight?>?vec[i].m_iWeightValue)?{
				minWeight?=?vec[i].m_iWeightValue;
				edgeIndex?=?i;
			}
		}

	}

	return?edgeIndex;
}
這是代碼,檢查了好多遍,完全照著寫打印結果也是錯的。
下面的輸出:
A
0---5????????1
F
5---1????????2
B
5---3????????2
D
1---2????????3
C
3---4????????4
E
求大佬解答。。


正在回答

2 回答

你看了kruskal算法嗎,他的打印結果和你這個一樣,很迷啊。

0 回復 有任何疑惑可以回復我~
#1

xk今天要改名了

我看錯了 ,并不一樣,老師的并沒有問題。
2017-09-02 回復 有任何疑惑可以回復我~

第18行應該是Edge edge(temp,i,value);


0 回復 有任何疑惑可以回復我~
#1

Uchiha_Obito 提問者

我的Edge類構造函數是要先傳value..這個沒問題
2017-09-02 回復 有任何疑惑可以回復我~
#2

xk今天要改名了 回復 Uchiha_Obito 提問者

那你的算法應該沒有問題,我試過了,可以出結果,應該是其他地方有問題。
2017-09-02 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

打印結果老是不對。

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號