1. //---基于邻接表的bfs


  2. #include <stdio.h>
  3. #include <string.h>
  4. #include <iostream>
  5. #include <string>
  6. #include <algorithm>
  7. #include <queue>
  8.  
  9. using namespace std;
  10.  
  11. struct node
  12. {
  13. int date;
  14. struct node *next;
  15. }*head[101], *tail[101];
  16.  
  17. void bfs(int s)
  18. {
  19. int flag=0; //标记输出,保证输出格式的正确的
  20.  
  21. bool vis[101];
  22. memset(vis, false, sizeof(vis) );
  23. queue<int>q;
  24.  
  25. vis[s]=true; //标记起点访问
  26. q.push(s);
  27. int cur;
  28.  
  29. struct node *p;
  30. while( !q.empty() )
  31. {
  32. cur=q.front();
  33. if(flag==0)
  34. {
  35. printf("%d", cur );
  36. flag=1;
  37. }
  38. else if(flag==1)
  39. {
  40. printf(" %d", cur );
  41. }
  42.  
  43. q.pop();
  44. if( head[cur] ) //如果不空
  45. {
  46. //开始遍历
  47. p=head[cur]->next;
  48. while(p)
  49. {
  50. if(vis[p->date]==false)
  51. {
  52. q.push(p->date);
  53. vis[p->date]=true;
  54. }
  55. p=p->next;
  56. }
  57. }
  58. }
  59. printf("\n");
  60. }
  61.  
  62. int main()
  63. {
  64. int t;
  65. cin>>t;
  66. int n, m, s;
  67. int u, v;
  68. int i;
  69.  
  70. while(t--)
  71. {
  72. for(i=0; i<=100; i++)
  73. {
  74. head[i]=new struct node;
  75. head[i]->next = NULL;
  76. tail[i] = head[i];
  77. }
  78. //邻接表的初始化
  79.  
  80. scanf("%d %d %d", &n, &m, &s) ;
  81. struct node *p, *q;
  82. for(i=0; i<m; i++)
  83. {
  84. scanf("%d %d", &u, &v );
  85. p=new struct node;
  86. p->date=v; p->next=NULL;
  87. q=new struct node;
  88. q->date=u; q->next=NULL;
  89.  
  90. tail[u]->next=p; tail[u]=p;
  91. tail[v]->next=q; tail[v]=q;
  92. } //建立邻接表
  93. bfs(s);
  94. }
  95. return 0;
  96. }

bfs 邻接表(需要优化 可能会RE *【模板】)的更多相关文章

  1. 图论——最小生成树prim+邻接表+堆优化

    今天学长对比了最小生成树最快速的求法不管是稠密图还是稀疏图,prim+邻接表+堆优化都能得到一个很不错的速度,所以参考学长的代码打出了下列代码,make_pair还不是很会,大体理解的意思是可以同时绑 ...

  2. I - 乓 (BFS+邻接表)

    USTC campus network is a huge network. There is a bi-directional link between every pair of computer ...

  3. bfs 邻接表

    #include<stdio.h> #include<stdlib.h> #include<string.h> struct node { int date; st ...

  4. HDU 1535 Invitation Cards(逆向思维+邻接表+优先队列的Dijkstra算法)

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=1535 Problem Description In the age of television, n ...

  5. 邻接表(C++)

    adj_list_network_edge.h // 邻接表网边数据类模板 template <class WeightType> class AdjListNetworkEdge { p ...

  6. 图的bfs遍历模板(邻接矩阵存储和邻接表存储)

    bfs遍历图模板伪代码: bfs(u){ //遍历u所在的连通块 queue q; //将u入队 inq[u] = true; while (q非空){ //取出q的队首元素u进行访问 for (从u ...

  7. ACM/ICPC 之 数据结构-邻接表+BFS(TSH OJ-无线广播Broadcast)

    这道题中若能够构成互不干扰的区域,其构成的图其实就是汉密尔顿路(Hamilton road),因此如果能够观察出来可以直接转化为汉密尔顿路的存在性证明,即便不能观察,我相信ACMer也能转化为BFS问 ...

  8. POJ 1511 - Invitation Cards 邻接表 Dijkstra堆优化

    昨天的题太水了,堆优化跑的不爽,今天换了一个题,1000000个点,1000000条边= = 试一试邻接表 写的过程中遇到了一些问题,由于习惯于把数据结构封装在 struct 里,结果 int [10 ...

  9. HD1532Drainage Ditches(最大流模板裸题 + 邻接表)

    Drainage Ditches Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) ...

随机推荐

  1. 设置USB数据监听

    设置USB数据监听   在Kali Linux中,USB也是作为一个通信端口进行存在.常见的鼠标.键盘.U盘都是通过USB接口传输数据.所以,对于USB接口也可以实施监听,类似网络接口一样.在进行US ...

  2. luogu P3811 【模板】乘法逆元

    题目背景 这是一道模板题 题目描述 给定n,p求1~n中所有整数在模p意义下的乘法逆元. 输入输出格式 输入格式: 一行n,p 输出格式: n行,第i行表示i在模p意义下的逆元. 输入输出样例 输入样 ...

  3. java三角形和菱形的打印

    一.三角形的打印 package 向家康; import java.util.Scanner; public class Main { public void san(int num) { for(i ...

  4. 简约至上.md

    中秋花了一天多时间阅读了简约至上这本书,书中内容不多,主要是向我们传达了产品设计的4个要素,给了产品经理设计产品时的一些要义指导; 一产品定位 在进行产品设计之前,首页需要对这款产品的商业定位需要有个 ...

  5. 【css】设置div位于浏览器的最底层,离用户最远

    有时候切换发现某块div一直悬浮在最上层,怎么设置div位于浏览器的最底层.离用户最远? <style> .in{ z-index: -1; } </style> 然后引用in ...

  6. Zxing二维码精简(竖屏、拉伸处理、扫描框大小和扫描线移动)

    本帖最后由 levil_ad 于 2013-12-30 13:55 编辑 最近没事做了下二维码扫描,用的是ZXing的开源代码,官方源码地址:http://code.google.com/p/zxin ...

  7. iOS开发 准确计算Coretext高度

    - (int)getAttributedStringHeightWithString:(NSAttributedString *)  string  WidthValue:(int) width{   ...

  8. utuntu16.04安装caffe+Matlab2017a+opencv3.1+CUDA8.0+cudnn6.0

    上午把tensorflow安装好了,下午和晚上装caffe的确很费劲. 默认CUDA,cuDNN可以用了 caffe官方安装教程 有些安装顺序自己也不清楚,简直就是碰运气 1. 安装之前依赖项 Gen ...

  9. PHP 实现Word,excel等转换pdf

    近期做一个项目,须要将用户上传的word,excel文档转成PDF文档保存并打印.在网上找了非常多资料.并不全面,所以自己写了一份比較全面的教程来分享. 以下是操作步骤: 1.        安装免费 ...

  10. WPF简单计算器