胡离
2017-03-01 11:22
为什么打印矩阵结果和老师的不一样呢?

打印函数是这个:
void CMap::printMatrix()
{
for(int i=0;i<m_iCapacity;i++)
{
for(int k=0;k<m_iCapacity;k++)
{
cout<<m_pMatrix[i*m_iCapacity+k]<<" ";
}
cout<<endl;
}
}主函数是这个:
int main(void)
{
CMap *pMap=new CMap(8);
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');
Node *pNodeG=new Node('G');
Node *pNodeH=new Node('H');
pMap->addNode(pNodeA);
pMap->addNode(pNodeB);
pMap->addNode(pNodeC);
pMap->addNode(pNodeD);
pMap->addNode(pNodeE);
pMap->addNode(pNodeF);
pMap->addNode(pNodeG);
pMap->addNode(pNodeH);
pMap->setValueToMatrixForUndirectedGraph(0,1);
pMap->setValueToMatrixForUndirectedGraph(0,3);
pMap->setValueToMatrixForUndirectedGraph(1,2);
pMap->setValueToMatrixForUndirectedGraph(1,5);
pMap->setValueToMatrixForUndirectedGraph(2,4);
pMap->setValueToMatrixForUndirectedGraph(4,5);
pMap->setValueToMatrixForUndirectedGraph(3,6);
pMap->setValueToMatrixForUndirectedGraph(3,7);
pMap->setValueToMatrixForUndirectedGraph(6,7);
pMap->printMatrix();
cout<<endl;
pMap->depthFirstTraverse(0);
cout<<endl;
pMap->resetNode();
pMap->breadthFirstTraverse(0);
system("pause");
return 0;
}
你的是对的,老师的明显有错误,c和f是之间是没有通路的
你得在BreadthFirstTraverseImpl函数里面添加括号
老师的在代码页面(不是打印出来的)上面邻接举证有错误,有的多连了,有的却没有连。
应该是这样的
A B C D E F G H
A 1 1
B 1 1 1
C 1 1
D 1 1 1
E 1 1
F 1 1
G 1 1
H 1 1
3.我看了你的打印函数与主函数并没有发现错误。我觉得错误在setValueToMatrixForUndirectedGraph函数内了。
数据结构探险之图篇
56389 学习 · 83 问题
相似问题