问题 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;
}

相关内容

热门资讯

AWSECS:访问外部网络时出... 如果您在AWS ECS中部署了应用程序,并且该应用程序需要访问外部网络,但是无法正常访问,可能是因为...
AWSElasticBeans... 在Dockerfile中手动配置nginx反向代理。例如,在Dockerfile中添加以下代码:FR...
AWR报告解读 WORKLOAD REPOSITORY PDB report (PDB snapshots) AW...
AWS管理控制台菜单和权限 要在AWS管理控制台中创建菜单和权限,您可以使用AWS Identity and Access Ma...
银河麒麟V10SP1高级服务器... 银河麒麟高级服务器操作系统简介: 银河麒麟高级服务器操作系统V10是针对企业级关键业务...
北信源内网安全管理卸载 北信源内网安全管理是一款网络安全管理软件,主要用于保护内网安全。在日常使用过程中,卸载该软件是一种常...
群晖外网访问终极解决方法:IP... 写在前面的话 受够了群晖的quickconnet的小水管了,急需一个新的解决方法&#x...
​ToDesk 远程工具安装及... 目录 前言 ToDesk 优势 ToDesk 下载安装 ToDesk 功能展示 文件传输 设备链接 ...
Azure构建流程(Power... 这可能是由于配置错误导致的问题。请检查构建流程任务中的“发布构建制品”步骤,确保正确配置了“Arti...
不能访问光猫的的管理页面 光猫是现代家庭宽带网络的重要组成部分,它可以提供高速稳定的网络连接。但是,有时候我们会遇到不能访问光...