图的广度优先搜索(邻接表)
来源:互联网 发布:免费钢结构计算软件 编辑:程序博客网 时间:2024/05/22 09:23
Problem Description
给出图的顶点数和顶点与顶点之间的连接关系,请输出用邻接表存储的图的广度优先搜索顶点序列。
Input
输入的第一行是一个整数T表示测试示例的数目,每组示例的第一行有两个数m(2<=m<=10)和n(1<=n<=m*(m-1)/2),m表示顶点的个数(顶点的标号从1-m),n表示边的个数。下面n行的每行有两个顶点号表示一条边。后面一行是一个数k,k表示需要搜索的顶点数量。后面k行每行有一个数表示从该顶点开始搜索。在搜索过程中与同一个顶点相邻的顶点按存储的先后顺序进行搜索。
Output
每组输出k行,每行为从输入的一个顶点开始搜索的广度优先搜索序列。每组搜素结果之间用空行隔开。
Sample Input
12 11 2212
Sample Output
1 22 1
//标程:
#include<iostream>#include<cstring>#include<queue>#include<vector>using namespace std;int edge_num,point_num,start_point,cnt;int visited[15];vector<int> map[15];queue<int> q_map;void bfs(){ while(!q_map.empty()){int temp_point=q_map.front();cnt++;if(cnt<point_num) cout<<temp_point<<" ";if(cnt==point_num) cout<<temp_point<<endl;q_map.pop();for(int i=0;i<map[temp_point].size();i++){if(visited[map[temp_point][i]]==0){visited[map[temp_point][i]]=1;q_map.push(map[temp_point][i]);}}}}int main(){ //freopen("b.txt","r",stdin);int group_num,i,point1,point2;cin>>group_num;while(group_num--){cin>>point_num>>edge_num;while(!q_map.empty()) q_map.pop();for(i=1;i<=point_num;i++) map[i].clear();for(i=1;i<=edge_num;i++){ cin>>point1>>point2; map[point1].push_back(point2);map[point2].push_back(point1);}int ask;cin>>ask;for(i=1;i<=ask;i++){memset(visited,0,sizeof(visited));cin>>start_point;visited[start_point]=1;q_map.push(start_point);cnt=0; bfs();}if(group_num!=0) cout<<endl;}return 0;}
0 0
- 图的广度优先搜索(邻接表)
- 邻接图的广度优先搜索(BFS)
- 图的深度、广度优先搜索(邻接表)
- 图的广度优先搜索(邻接表)
- BFS--广度优先搜索--图的邻接表
- 图的广度优先搜索遍历(邻接表&邻接矩阵)(C++)
- 图深度优先搜索广度优先搜索,邻接表
- 图的邻接表表示、广度优先、深度优先搜索
- 图的深度优先搜索/广度优先搜索(邻接表实现)
- 图基本算法 图搜索基于邻接表的(广度优先、深度优先)
- 基于邻接表的广度优先搜索遍历
- 基于邻接表的广度优先搜索遍历
- 邻接表表示的广度优先搜索
- 邻接表实现BFS广度优先搜索
- 邻接表 邻接矩阵 广度优先搜索 深度优先搜索
- 图的广度优先搜索(BFS)、深度优先搜索(DFS)(邻接矩阵法和邻接表法java实现)
- 数据结构——图的邻接表的广度优先搜索
- 基于邻接表的图的深度和广度优先搜索遍历
- Android权限使用(网络收集的资料)
- Tomcat 8(五)startup.bat详解
- uva 11766 - Racing Car Computer(dp)
- The VMware Authorization Service is not running
- 创建修改删除数据表
- 图的广度优先搜索(邻接表)
- 关于BOX2D的那些事儿(3)
- 从今天开始写博客
- 初识C#设计模式
- git使用
- android,sim卡,TelephonyManager,手机SIM卡状态的获取
- 详解 C++ virtual 析构函数
- 协方差的意义
- 关于数组排序