问题 F: 案例6-1.2:邻接表存储图的广度优先遍历
创始人
2024-01-21 01:39:32
0

题目描述

一个图有n个节点编号从0至n-1和m条边编号从0至m-1。 输出从点x开始的广度优先遍历顺序。

输入格式

第一行为n、m、x。 
接下来m行每行有一组u,v。表示点u可以到达点v,点v也可以到达点u。

输出格式

输出经过点的顺序。(输出字典序最小的答案)

输入样例

7 9 5
0 3
0 2
0 4
3 1
3 2
4 5
1 5
2 5
5 6

输出样例  

5 1 2 4 6 3 0

代码展示 

emmm函数不一定全用上了有些是别的题留下的为了之后方便使用没删

#include
#include
#include
#include
using namespace std;#define MAX_SIZE 100//领接矩阵存储的图
struct Graph{int vexNumber;string vexInfo[MAX_SIZE];int adjMatrix[MAX_SIZE][MAX_SIZE];
};//弧结点定义
struct ArcNode{int weight;//弧上的信息部分int adj;//邻接点的序号ArcNode *nextarc;
};//顶点结点定义
struct VexNode{string Info;ArcNode *firstarc;
};//领接表结构的图的定义
struct linkGraph{VexNode *vexes;int vexnumber;
};int preInitGraph(linkGraph &G,const Graph &g){G.vexes=new VexNode[g.vexNumber];G.vexnumber=g.vexNumber;for(int i=0;inextarc=NULL;p->adj=j;ArcNode *q=G.vexes[i].firstarc;if(G.vexes[i].firstarc==NULL)G.vexes[i].firstarc=p;else{while(q->nextarc!=NULL){q=q->nextarc;}q->nextarc=p;}}}}
}int DestroyGraph(linkGraph &G){for(int i=0;inextarc;delete p;}}delete[]G.vexes;G.vexes=NULL;G.vexnumber=0;return 0;
}
//输出领接表存储的图
void PrintGraph(const linkGraph &G){for(int i=0;i "<adj].Info;p=p->nextarc;}cout<s;ArcNode *p=G.vexes[v0].firstarc;s.push(p);while(!s.empty()){ArcNode *vNode=s.top();for(p=vNode;p!=NULL;p=p->nextarc){if(visited[p->adj]==0){result+=G.vexes[p->adj].Info;result+=" ";visited[p->adj]=1;if(p->nextarc!=NULL)  s.push(p->nextarc);break;}}if(p==NULL)  s.pop();}return result;
}
//对整个图进行DFS
string DFS(const Graph &G){string result="";linkGraph LG;InitGraph(LG,G);//test//PrintGraph(LG);int *visited=new int[G.vexNumber];for(int i=0;iq;q.push(v0);visited[v0]=1;while(!q.empty()){int v=q.front();q.pop();cout<nextarc){if(!visited[p->adj]){q.push(p->adj);visited[p->adj]=1;}}}return 0;
}int BFS(Graph &G,int x){int *visited=new int[G.vexNumber];for(int i=0;i>n>>m>>x;if(n==0){cout<<0;return 0;}Graph G;G.vexNumber=n;for(int i=0;i>a>>b;G.adjMatrix[a][b]=1;G.adjMatrix[b][a]=1;}BFS(G,x);return 0;
}

相关内容

热门资讯

【NI Multisim 14...   目录 序言 一、工具栏 🍊1.“标准”工具栏 🍊 2.视图工具...
银河麒麟V10SP1高级服务器... 银河麒麟高级服务器操作系统简介: 银河麒麟高级服务器操作系统V10是针对企业级关键业务...
不能访问光猫的的管理页面 光猫是现代家庭宽带网络的重要组成部分,它可以提供高速稳定的网络连接。但是,有时候我们会遇到不能访问光...
AWSECS:访问外部网络时出... 如果您在AWS ECS中部署了应用程序,并且该应用程序需要访问外部网络,但是无法正常访问,可能是因为...
Android|无法访问或保存... 这个问题可能是由于权限设置不正确导致的。您需要在应用程序清单文件中添加以下代码来请求适当的权限:此外...
北信源内网安全管理卸载 北信源内网安全管理是一款网络安全管理软件,主要用于保护内网安全。在日常使用过程中,卸载该软件是一种常...
AWSElasticBeans... 在Dockerfile中手动配置nginx反向代理。例如,在Dockerfile中添加以下代码:FR...
AsusVivobook无法开... 首先,我们可以尝试重置BIOS(Basic Input/Output System)来解决这个问题。...
ASM贪吃蛇游戏-解决错误的问... 要解决ASM贪吃蛇游戏中的错误问题,你可以按照以下步骤进行:首先,确定错误的具体表现和问题所在。在贪...
月入8000+的steam搬砖... 大家好,我是阿阳 今天要给大家介绍的是 steam 游戏搬砖项目,目前...