2142 数据结构实验之图论二:基于邻接表的广度优先搜索遍历
来源:互联网 发布:佐拉算法说的那些人 编辑:程序博客网 时间:2024/06/03 21:36
数据结构实验之图论二:基于邻接表的广度优先搜索遍历
#include <iostream> #include <cstdio> #include <cstring> using namespace std; const int MAXN=100+10; int n,m,s; bool vis[MAXN]; int head[MAXN]; int cnt; struct node { int v; int next; }edge[5000]; void add(int u,int v) { edge[cnt].v=v; edge[cnt].next=head[u]; head[u]=cnt++; } bool check(int u,int v) { for(int i=head[u];i!=-1;i=edge[i].next) { if(edge[i].v==v)return 1; } return 0; } void bfs(int s) { memset(vis,0,sizeof(vis)); int q[110]; int qhead=0,qtail=0; vis[s]=1; q[qtail++]=s; while(qhead<qtail) { int k=q[qhead++]; printf("%d ",k); for(int i=0;i<n;++i) { if(!vis[i]&&check(k,i)) { vis[i]=1; q[qtail++]=i; } } } } int main() { int t; scanf("%d",&t); while(t--) { scanf("%d%d%d",&n,&m,&s); memset(head,-1,sizeof(head)); int u,v; cnt=0; for(int i=0;i<m;++i) { scanf("%d%d",&u,&v); add(u,v); add(v,u); } bfs(s); puts(""); } return 0; }
错误的代码/*#include<stdio.h> #include<string.h> int k, m, t; int visit[200], b[200]; //visit是标记数组;b数组用来存放搜索的点,每次搜索一遍经排序后就输出struct node { int u, v; node *next; }*head[200]; //;邻接表void add(int u, int v) { node *p=new node; p->u=u; p->v=v; p->next=head[u]; head[u]=p; } void bfs(int t) { node *p=new node; visit[t]=1; p=head[t]; int s=1; while(p) { if(visit[p->v]==0) { b[s++]=p->v; visit[p->v]=1; p=p->next; } else { p=p->next; } for(int i=1;i<s;i++) //用冒泡把每次搜索到的与同一个节点同层的邻接点从小到大排序 { for(int j=1;j<s-i;j++) { if(b[j]>b[j+1]) { int t; t=b[j]; b[j]=b[j+1]; b[j+1]=t; } } } for(int i=1;i<s;i++) //把每次搜索到的节点输出 printf(" %d", b[i]); for(int i=1;i<s;i++) //广度优先搜索 bfs(b[i]); } int main() { int n, u, v; scanf("%d", &n); while(n--) { memset(visit,0,sizeof(visit)); memset(head,NULL,sizeof(head)); scanf("%d%d%d", &k, &m, &t); while(m--) { scanf("%d%d", &u, &v); add(u, v); //add函数建立邻接表 add(v, u); } printf("%d", t); //先把最先需要搜索的点输出,即遍历的起始点 bfs(t); printf("\n"); } return 0; } */
0 0
- 【2142】数据结构实验之图论二:基于邻接表的广度优先搜索遍历 (SDUT)
- SDUT 2142 数据结构实验之图论二:基于邻接表的广度优先搜索遍历
- SDUT 2142 数据结构实验之图论二:基于邻接表的广度优先搜索遍历
- 2142 数据结构实验之图论二:基于邻接表的广度优先搜索遍历
- 数据结构实验之图论二:基于邻接表的广度优先搜索遍历
- 数据结构实验之图论二:基于邻接表的广度优先搜索遍历
- SDUT 2412 数据结构实验之图论二:基于邻接表的广度优先搜索遍历
- 数据结构实验之图论二:基于邻接表的广度优先搜索遍历
- 数据结构实验之图论二:基于邻接表的广度优先搜索遍历
- 数据结构实验之图论二:基于邻接表的广度优先搜索遍历 (BFS)
- 数据结构实验之图论二:基于邻接表的广度优先搜索遍历
- 数据结构实验之图论二:基于邻接表的广度优先搜索遍历
- 数据结构实验之图论二:基于邻接表的广度优先搜索遍历
- 数据结构实验之图论二:基于邻接表的广度优先搜索遍历
- 数据结构实验之图论二:基于邻接表的广度优先搜索遍历
- 数据结构实验之图论二:基于邻接表的广度优先搜索遍历
- 数据结构实验之图论二:基于邻接表的广度优先搜索遍历
- SDUTACM 数据结构实验之图论二:基于邻接表的广度优先搜索遍历
- js之iframe子页面与父页面通信
- APK文件信息查看器
- 大朋M2头盔触摸板开发
- 关于 机器周期、时钟周期、总线周期、指令周期
- Java基础学习
- 2142 数据结构实验之图论二:基于邻接表的广度优先搜索遍历
- undefined reference to 'stdscr'
- extjs6 api的搜索框不见原因
- 数据结构::算法复杂度
- 新环境中奋起的岁月(四)
- 苹果手机不越狱虚拟定位教程 包括ios10通用
- Matlab编程与数据类型 -- 函数M文件的组成
- 第七章--虚拟机类加载机制
- 1