问答详情
源自:3-7 图的编码实战-图的编码阶段检测

为什么打印矩阵结果和老师的不一样呢?

为什么打印矩阵结果和老师的不一样呢?

http://img.mukewang.com/58b63e590001eb3703610262.jpg

打印函数是这个:

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;
}


提问者:胡离 2017-03-01 11:22

个回答

  • 西兰骑士
    2018-01-12 14:17:03

    你的是对的,老师的明显有错误,c和f是之间是没有通路的

  • MOCKINGT
    2017-10-04 13:29:56

    你得在BreadthFirstTraverseImpl函数里面添加括号

  • Lzk_dies
    2017-03-01 15:10:12

    1. 老师的在代码页面(不是打印出来的)上面邻接举证有错误,有的多连了,有的却没有连。

    2. 应该是这样的

      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函数内了。