第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

為何普利姆算法輸出結(jié)果與老師的不一樣?

為何普利姆算法輸出結(jié)果與老師的不一樣?

這是我的輸出結(jié)果與數(shù)據(jù)結(jié)構(gòu)課程的不一樣這是我的主函數(shù)int?main(void) { ????CMap?*pMap=new?CMap(6); ????? ????Node?*pNodeA=new?Node('A'); ????Node?*pNodeB=new?Node('B'); ????Node?*pNodeC=new?Node('C'); ????Node?*pNodeD=new?Node('D'); ????Node?*pNodeE=new?Node('E'); ????Node?*pNodeF=new?Node('F'); ? ????? ????pMap->addNode(pNodeA); ????pMap->addNode(pNodeB); ????pMap->addNode(pNodeC); ????pMap->addNode(pNodeD); ????pMap->addNode(pNodeE); ????pMap->addNode(pNodeF); ? ????? ????? ????pMap->setValueToMatrixForUndirectedGraph(0,1,6); ????pMap->setValueToMatrixForUndirectedGraph(0,4,5); ????pMap->setValueToMatrixForUndirectedGraph(0,5,1); ????pMap->setValueToMatrixForUndirectedGraph(1,2,3); ????pMap->setValueToMatrixForUndirectedGraph(1,5,2); ????pMap->setValueToMatrixForUndirectedGraph(2,5,8); ????pMap->setValueToMatrixForUndirectedGraph(2,3,7); ????pMap->setValueToMatrixForUndirectedGraph(3,5,4); ????pMap->setValueToMatrixForUndirectedGraph(3,4,2); ????pMap->setValueToMatrixForUndirectedGraph(4,5,9); ????? ????pMap->primTree(0); ? ? ????system("pause"); ????return?0; }普利姆算法void?CMap::primTree(int?nodeIndex)//普利姆生成樹(shù) { ????int?value=0;//邊的權(quán)值保存到value中? ????int?edgeCount=0;//取出的邊數(shù)? ????vector<int>nodeVec;//點(diǎn)的索引的集合? ????vector<Edge>?edgeVec;//邊的集合? ????? ????cout<<m_pNodeArray[nodeIndex].m_cData<<endl; ????? ????nodeVec.push_back(nodeIndex); ????m_pNodeArray[nodeIndex].m_bIsVisited=true; ????// ????while(edgeCount<m_iCapacity-1)//邊數(shù)小于m_iCapacity-1則一直要循環(huán)? ????{ ????????int?temp=?nodeVec.back();//取出nodeIndex,back()函數(shù)是取當(dāng)前數(shù)組中尾部的元素 ????????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(temp,i,value); ????????????????????edgeVec.push_back(edge); ????????????????} ????????????} ????????}//所有邊放入備選邊集合中 ????????? ????????//從可選邊集合中找出最小的邊? ????????int?edgeIndex=getMinEdge(edgeVec);//找最小權(quán)值邊的索引? ????????edgeVec[edgeIndex].m_bSelected=true; ????????//將過(guò)程打印出來(lái)? ????????cout<<edgeVec[edgeIndex].m_iNodeIndexA<<"---"<<edgeVec[edgeIndex].m_iNodeIndexB<<"?"; ????????cout<<edgeVec[edgeIndex].m_iWeightValue<<endl; ????? ????????m_pEdge[edgeCount]=edgeVec[edgeIndex];?//保存邊? ????????edgeCount++; ????????? ????????//nodeVec為點(diǎn)集合? ????????int?nextNodeIndex=edgeVec[edgeIndex].m_iNodeIndexB; ????? ????????nodeVec.push_back(nextNodeIndex);? ????????m_pNodeArray[nextNodeIndex].m_bIsVisited=true; ????????cout<<m_pNodeArray[nextNodeIndex].m_cData<<endl; ????} } int?CMap::getMinEdge(vector<Edge>?edgeVec) { ????int?minWeight=0;//初始化最小權(quán)值? ????int?edgeIndex=0; ????int?i=0; ????for(i=0;i<edgeVec.size();i++) ????{ ????????if(!edgeVec[i].m_bSelected) ????????{ ????????????minWeight=edgeVec[i].m_iWeightValue; ????????????edgeIndex=i; ????????????break;//這里需要注意? ????????} ????} ????? ????if(minWeight==0) ????{ ????????return?-1; ????} ????//判斷后面是否還存在最小權(quán)值邊? ????for(;i<edgeVec.size();i++) ????{ ????????if(edgeVec[i].m_bSelected) ????????{ ????????????continue; ????????} ????????else ????????{ ????????????if(minWeight>edgeVec[i].m_iWeightValue) ????????????{ ????????????????minWeight=edgeVec[i].m_iWeightValue; ????????????????edgeIndex=i; ????????????} ????????} ????????????? ????}? ????? ????return?edgeIndex; }
查看完整描述

1 回答

?
巧若拙愛(ài)運(yùn)動(dòng)

TA貢獻(xiàn)1條經(jīng)驗(yàn) 獲得超0個(gè)贊

你連下標(biāo)6都出來(lái)了!

感覺(jué)你的prime算法好復(fù)雜!

查看完整回答
反對(duì) 回復(fù) 2017-03-08
  • 1 回答
  • 1 關(guān)注
  • 1224 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)