关于P5318
  • 板块灌水区
  • 楼主Starkiller123
  • 当前回复1
  • 已保存回复1
  • 发布时间2023/7/17 17:32
  • 上次更新2023/11/3 09:17:49
查看原帖
关于P5318
846034
Starkiller123楼主2023/7/17 17:32
#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;//好习惯 
 } 

未完成的代码,有大佬帮一下吗?

2023/7/17 17:32
加载中...