菜鸟请教----关于用邻接表存储图
下面是我的代码。
我从一个邻接矩阵里得到图的信息,然后用邻接表存储。
同时我想实现输入某个结点,找到和它直接相连的结点,并输出。
也就是把某一条连表上的结点输出来。
可输出的结点不是我想要的,哪位大虾帮忙看看啊。!!万分感谢!!
//遍历二维数组,建立链表
EdgeNode *Temp;
for (int intGRow=0;intGRow<intMatrixSize;intGRow++)
{
for (int intGClumn=0;intGClumn<intMatrixSize;intGClumn++)
{
if (intGraphArray[intGRow][intGClumn]!=0)
{
Temp=(EdgeNode *)malloc(sizeof(EdgeNode)); //生成边表结点
Temp->adjvex=intGClumn; //邻接点序号为j
Temp->next=BiaoTou[intGClumn].firstedge;
Temp->data=intGraphArray[intGRow][intGClumn];
BiaoTou[intGRow].firstedge=Temp; //将新结点插入顶点的边表头部
}
}
}
//查看关联情况
//查看与某点直接连接的结点情况
cout << endl
<< "请输入要查询的结点(0-" << intMatrixSize-1 <<")"<<endl;
int intFlag=0;
cin >> intFlag;
if ((intFlag>5) || intFlag<0 )
{
cout <<"请输入0-5的整数!";
}
//输出所要查询的结点
cout << BiaoTou[intFlag].vertex;
EdgeNode *TmpVnode;//临时的表结点
if (BiaoTou[intFlag].firstedge!=NULL)
{
cout << "-->" << BiaoTou[intFlag].firstedge->adjvex;
TmpVnode=BiaoTou[intFlag].firstedge;
while(TmpVnode->next!=NULL)
{
TmpVnode=TmpVnode->next;
cout <<"-->"<<TmpVnode->adjvex;
}
//释放内存空间
free (Temp);
}