横向优先搜索法遍历图
template<class T1,class T2>void Link_GP<T1,T2>::bfs_Link_GP()
{
int *mark,k;
sq_Queue<int>q(nn);
node<T1> *p;
mark=new int[nn];
for(k=0;k<nn;k++)
mark[k]=0;
for(k=0;k<nn;k++)
{
if(mark[k]==0)
{mark[k]=1;
cout<<gp->data<<" ";
q.ins_sq_Queue(k);//当前编号节点入队
while(q.flag_sq_Queue())
{
k=q.del_sq_Queue();//从队列中退出一个节点作为当前节点
p=(gp+k)->link;
while(p!=NULL)
{
k=p->num-1;
if(mark[k]==0)
{cout<<(gp+k)->data<<" ";
mark[k]=1;
q.ins_sq_Queue(k);//当前节点编号入队
}
p=p->next;
}
}
}
}
cout<<endl;
delete mark;
return;
}
横向优先搜索法遍历图,在哪里有问题,怎么程序到这里就停了。。。