#include<bits/stdc++.h>
using namespace std;
const int Max=10001
int n,m;
struct node
{
int v=0,w=0;
};
vector<node>g[Max];//定义图
int dfs_vis[Max];//在深搜中一个点是否访问过,是则为 1,否则为 0
void dfs(int u)
{
cout<<u<<" ";//输出访问的数
dfs_vis[u]=1;//标记已访问
for(int i=1;i<=n;i++)
for(int j=1;j<=g[i].size();j++)//遍历
if(g[i][j].w==1&&dfs_vis[u]==0)
dfs(g[i][j].v);
}
int bfs_vis[Max];//在广搜中一个点是否访问过,是则为 1,否则为 0
int a[Max];//模仿队列
void bfs(int u)
{
int head=0,tail=1;//头与尾的指针
a[0]=u;//顶点入队
bfs_vis[u]=1;//标记已访问
while(head<tail)//判断队列是否为空
{
int p=a[head++];//将队尾取出
cout<<p<<" ";
for(int i=1;i<=n;i++)
for(int j=1;j<=g[i].size();j++)
if(g[i][j].w==1&&bfs_vis[u]==0)
{
cout<<
}
}
}
int main()
{
int st;
node temp;
cin>>n>>m;//顶点数(n) 边数(m)
for(int i=1;i<=m;i++)//储存图
{
cin>>st>>temp.v;// 输入
temp.w=1;
g[st].push_back(temp);//确定边 (根据题意,我认为这是有向图)
}
dfs(1);//深搜结果
cout<<endl;//换行
bfs(1);//广搜结果
return 0;//好习惯
}
未完成的代码,有大佬帮一下吗?