数据结构实验之图论二:基于邻接表的广度优先搜索遍历
来源:互联网 发布:高仿鞋淘宝店 编辑:程序博客网 时间:2024/05/29 13:40
Description
给定一个无向连通图,顶点编号从0到n-1,用广度优先搜索(BFS)遍历,输出从某个顶点出发的遍历序列。(同一个结点的同层邻接点,节点编号小的优先遍历)
Input
输入第一行为整数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顶点的无向边。
Output
输出有n行,对应n组输出,每行为用空格隔开的k个整数,对应一组数据,表示BFS的遍历结果。
Sample Input
16 7 00 30 41 41 52 32 43 5
Sample Output
0 3 4 2 5 1
Hint
用邻接表存储。
#include <stdio.h>#include <string.h>int head[200];int vis[200];int que[40000];int jl[200],f[200];int num,len;struct node{ int u,v; int next;}st[100000];void kp(int l,int r){ if(l>=r) return ; int x=f[l],i=l,j=r; while(i<j) { while(i<j&&f[j]>=x) j--; f[i]=f[j]; while(i<j&&f[i]<=x) i++; f[j]=f[i]; } f[i]=x; kp(l,i-1); kp(i+1,r);}void add(int u,int v){ st[num].v=v; st[num].next=head[u]; // 存放上一节点的位置 head[u]=num++;}void bfs(int t){ int s=0,e=0; int x; que[e++]=t; vis[t]=1; while(s<e) { t=que[s++]; jl[len++]=t; x=0; for(int i=head[t];i!=-1;i=st[i].next) //找遍所有与t直接连接的点 { int b=st[i].v; if(!vis[b]) { f[x++]=b; vis[b]=1; } } kp(0,x-1); for(int i=0;i<x;i++) que[e++]=f[i]; }}int main(){ int n,k,m,t; scanf("%d",&n); while(n--) { num=0; len=0; memset(head,-1,sizeof(head)); memset(vis,0,sizeof(vis)); scanf("%d%d%d",&k,&m,&t); int u,v; while(m--) { scanf("%d%d",&u,&v); add(u,v); add(v,u); } bfs(t); for(int i=0;i<len-1;i++) printf("%d ",jl[i]); printf("%d\n",jl[len-1]); } return 0;}
0 0
- 数据结构实验之图论二:基于邻接表的广度优先搜索遍历
- 【2142】数据结构实验之图论二:基于邻接表的广度优先搜索遍历 (SDUT)
- 数据结构实验之图论二:基于邻接表的广度优先搜索遍历
- SDUT 2412 数据结构实验之图论二:基于邻接表的广度优先搜索遍历
- 数据结构实验之图论二:基于邻接表的广度优先搜索遍历
- 数据结构实验之图论二:基于邻接表的广度优先搜索遍历
- 数据结构实验之图论二:基于邻接表的广度优先搜索遍历 (BFS)
- 数据结构实验之图论二:基于邻接表的广度优先搜索遍历
- 数据结构实验之图论二:基于邻接表的广度优先搜索遍历
- 数据结构实验之图论二:基于邻接表的广度优先搜索遍历
- SDUT 2142 数据结构实验之图论二:基于邻接表的广度优先搜索遍历
- 数据结构实验之图论二:基于邻接表的广度优先搜索遍历
- 数据结构实验之图论二:基于邻接表的广度优先搜索遍历
- 数据结构实验之图论二:基于邻接表的广度优先搜索遍历
- 数据结构实验之图论二:基于邻接表的广度优先搜索遍历
- SDUTACM 数据结构实验之图论二:基于邻接表的广度优先搜索遍历
- 数据结构实验之图论二:基于邻接表的广度优先搜索遍历
- 数据结构实验之图论二:基于邻接表的广度优先搜索遍历
- wifi打开重启概率性sdio失败
- MPD大会上使用的PPT分享 - 2014
- HDU - 4526 威威猫系列故事――拼车记 (DP)
- 寻址方式
- DAGScheduler源码解析之作业提交
- 数据结构实验之图论二:基于邻接表的广度优先搜索遍历
- openVswitch(OVS)源代码分析之工作流程(key值得提取)
- Spring复习笔记
- (1)ok6410学习之makefile学习
- php之mongodb插入数据后如何返回当前插入记录ID
- 数字图像处理中的形态学
- 39 二叉树中两个节点最大距离
- 不用加减乘除运算符求解两个数加减乘除
- 嵌入式 linux(test命令)