数据结构实验之图论二:基于邻接表的广度优先搜索遍历
来源:互联网 发布:msdia80.dll是什么知乎 编辑:程序博客网 时间:2024/05/15 14:06
数据结构实验之图论二:基于邻接表的广度优先搜索遍历
Time Limit: 1000ms Memory limit: 65536K 有疑问?点这里^_^
题目描述
给定一个无向连通图,顶点编号从0到n-1,用广度优先搜索(BFS)遍历,输出从某个顶点出发的遍历序列。(同一个结点的同层邻接点,节点编号小的优先遍历)
输入
输入第一行为整数n(0< n <100),表示数据的组数。
对于每组数据,第一行是三个整数k,m,t(0<k<100,0<m<(k-1)*k/2,0< t<k),表示有m条边,k个顶点,t为遍历的起始顶点。
下面的m行,每行是空格隔开的两个整数u,v,表示一条连接u,v顶点的无向边。
对于每组数据,第一行是三个整数k,m,t(0<k<100,0<m<(k-1)*k/2,0< t<k),表示有m条边,k个顶点,t为遍历的起始顶点。
下面的m行,每行是空格隔开的两个整数u,v,表示一条连接u,v顶点的无向边。
输出
输出有n行,对应n组输出,每行为用空格隔开的k个整数,对应一组数据,表示BFS的遍历结果。
示例输入
16 7 00 30 41 41 52 32 43 5
示例输出
0 3 4 2 5 1
提示
用邻接表存储。
来源
示例程序
#include<stdio.h> #include<string.h> #include<stdlib.h> int n,e,k,out=0,in=0; int visited[1000],d[1000]; typedef struct VNode { int data; struct VNode *firstarc; }VNode; typedef struct AlGraph { VNode vertices[200]; int vexnum,arcnum; int kind; }ALGraph; ALGraph *Creatgraph( ALGraph*G,int n) { VNode *p,*q1,*q2; int i; int v,u; for(i=0;i<n;i++) { G->vertices[i].data=i; G->vertices[i].firstarc=NULL; } for(i=0;i<e;i++) { scanf("%d %d",&u,&v); p=(VNode *)malloc(sizeof(VNode)); p->data=u; q1=&G->vertices[v]; while(q1->firstarc) q1=q1->firstarc; p->firstarc=q1->firstarc; q1->firstarc=p; q1=p; p=(VNode *)malloc(sizeof(VNode)); p->data=v; q2=&G->vertices[u]; while(q2->firstarc) q2=q2->firstarc; p->firstarc=q2->firstarc; q2->firstarc=p; q2=p; } G->vexnum=n; G->arcnum=e; return G; } void BFS(ALGraph *G,int x) { int t=1,h; int out=0,in=0; VNode *p; visited[x]=1; d[in++]=x; while (out<in) { h=d[out++]; if (t) { printf("%d",h); t=0; } else printf(" %d",h); p=&G->vertices[h]; while (p) { if (visited[p->data]==0) { d[in++]=p->data; visited[p->data]=1; } p=p->firstarc; } } } int main() { int i,j,t,m; ALGraph *G; G=(ALGraph *)malloc(sizeof(ALGraph)); scanf("%d",&m); for(i=0;i<m;i++) { scanf("%d %d %d",&n,&e,&k); for (j = 0; j < n; j++) visited[j] = 0; G=Creatgraph(G,n); BFS(G,k); } }
0 0
- 数据结构实验之图论二:基于邻接表的广度优先搜索遍历
- 【2142】数据结构实验之图论二:基于邻接表的广度优先搜索遍历 (SDUT)
- 数据结构实验之图论二:基于邻接表的广度优先搜索遍历
- SDUT 2412 数据结构实验之图论二:基于邻接表的广度优先搜索遍历
- 数据结构实验之图论二:基于邻接表的广度优先搜索遍历
- 数据结构实验之图论二:基于邻接表的广度优先搜索遍历
- 数据结构实验之图论二:基于邻接表的广度优先搜索遍历 (BFS)
- 数据结构实验之图论二:基于邻接表的广度优先搜索遍历
- 数据结构实验之图论二:基于邻接表的广度优先搜索遍历
- 数据结构实验之图论二:基于邻接表的广度优先搜索遍历
- SDUT 2142 数据结构实验之图论二:基于邻接表的广度优先搜索遍历
- 数据结构实验之图论二:基于邻接表的广度优先搜索遍历
- 数据结构实验之图论二:基于邻接表的广度优先搜索遍历
- 数据结构实验之图论二:基于邻接表的广度优先搜索遍历
- 数据结构实验之图论二:基于邻接表的广度优先搜索遍历
- SDUTACM 数据结构实验之图论二:基于邻接表的广度优先搜索遍历
- 数据结构实验之图论二:基于邻接表的广度优先搜索遍历
- 数据结构实验之图论二:基于邻接表的广度优先搜索遍历
- 数据结构实验图论一:基于邻接矩阵的广度优先搜索遍历
- 一种Unity2D多分辨率屏幕适配方案
- MyEclipse不能部署工程
- 看透智能机器人现在和未来
- js 压缩图片 H5
- 数据结构实验之图论二:基于邻接表的广度优先搜索遍历
- 曾推动微信运动成为潮流的乐心,想要用小米模式跟传统医疗说不
- PHP遍历目录并保存
- [unity3d]屏幕坐标跟世界坐标的转换
- Matlab矩阵的按列存储理解
- 卖6000块的扫地机器人和我家500块的能有啥区别?
- 图结构练习——最小生成树
- 第十一周实践项目1 - 二叉树算法验证(1)层次遍历算法的验证
- String.CopyTo方法和java多线程的一些问题整理