【文件属性】:
文件名称:动态内存+BFS
文件大小:12KB
文件格式:DOCX
更新时间:2021-02-04 12:05:06
动态内存+BFS
动态内存+BFS
#include
#include
#include
#include
using namespace std;
void BFS(list *the_a,int the_N,int the_S,int *the_b){
int *m=new int[the_N];
for(int k1=0;k1 qu;
qu.push(the_S-1);
while(!qu.empty()){
list::iterator iter;
for(iter=the_a[qu.front()].begin();iter!=the_a[qu.front()].end();iter++){
if(m[*iter-1]==0){
qu.push(*iter-1);m[*iter-1]=1;the_b[*iter-1]=qu.front();
}
}
qu.pop();
}
delete []m;
}
int main(){
int m;
cin>>m;
while(m--){
int N,S;
cin>>N>>S;
list *a=new list[N];
int *b=new int[N];
b[S-1]=-2;
int v1,v2;
for(int i=0;i>v1>>v2;
a[v1-1].push_back(v2);
a[v2-1].push_back(v1);
}
BFS(a,N,S,b);
for(int j=0;j