#include<iostream>
#include<stack>
using namespace std;
int visit[10005];
char j[10005];
stack<int>s[10005];
int bian,jiao;
void DF(int n)
{
while(!s[n].empty())
{
int t=s[n].top();
s[n].pop();
if(visit[t]==0)
{
cout<<j[t]<<" ";
visit[t]=1;
DF(t);
}
}
}
int findj(char x)
{
int i;
for(i=1;i<=jiao;i++)
{
if(j[i]==x)
return i;
}
}
int main()
{
int choose,i,w,x0,y0;
char j1,j2;
cin>>choose;
cin>>jiao>>bian;
for(i=1;i<=jiao;i++)
{
cin>>j[i];
visit[i]=0;
}
if(choose==2||choose==3)
{
for(i=1;i<=bian;i++)
{
cin>>j1>>j2;
if(choose==3)
{cin>>w;}
x0=findj(j1);
y0=findj(j2);
s[x0].push(y0);
s[y0].push(x0);
}
}
else if(choose==0||choose==1)
{
for(i=1;i<=bian;i++)
{
cin>>j1>>j2;
if(choose==1)
{cin>>w;}
x0=findj(j1);
y0=findj(j2);
s[x0].push(y0);
}
}
cout<<j[1]<<" ";
visit[1]=1;
DF(1);
}
SCAU 8649 图的广度遍历
最新推荐文章于 2024-09-28 15:28:59 发布