bfs 邻接表(需要优化 可能会RE *【模板】)
- //---基于邻接表的bfs
- #include <stdio.h>
- #include <string.h>
- #include <iostream>
- #include <string>
- #include <algorithm>
- #include <queue>
- using namespace std;
- struct node
- {
- int date;
- struct node *next;
- }*head[101], *tail[101];
- void bfs(int s)
- {
- int flag=0; //标记输出,保证输出格式的正确的
- bool vis[101];
- memset(vis, false, sizeof(vis) );
- queue<int>q;
- vis[s]=true; //标记起点访问
- q.push(s);
- int cur;
- struct node *p;
- while( !q.empty() )
- {
- cur=q.front();
- if(flag==0)
- {
- printf("%d", cur );
- flag=1;
- }
- else if(flag==1)
- {
- printf(" %d", cur );
- }
- q.pop();
- if( head[cur] ) //如果不空
- {
- //开始遍历
- p=head[cur]->next;
- while(p)
- {
- if(vis[p->date]==false)
- {
- q.push(p->date);
- vis[p->date]=true;
- }
- p=p->next;
- }
- }
- }
- printf("\n");
- }
- int main()
- {
- int t;
- cin>>t;
- int n, m, s;
- int u, v;
- int i;
- while(t--)
- {
- for(i=0; i<=100; i++)
- {
- head[i]=new struct node;
- head[i]->next = NULL;
- tail[i] = head[i];
- }
- //邻接表的初始化
- scanf("%d %d %d", &n, &m, &s) ;
- struct node *p, *q;
- for(i=0; i<m; i++)
- {
- scanf("%d %d", &u, &v );
- p=new struct node;
- p->date=v; p->next=NULL;
- q=new struct node;
- q->date=u; q->next=NULL;
- tail[u]->next=p; tail[u]=p;
- tail[v]->next=q; tail[v]=q;
- } //建立邻接表
- bfs(s);
- }
- return 0;
- }
bfs 邻接表(需要优化 可能会RE *【模板】)的更多相关文章
- 图论——最小生成树prim+邻接表+堆优化
今天学长对比了最小生成树最快速的求法不管是稠密图还是稀疏图,prim+邻接表+堆优化都能得到一个很不错的速度,所以参考学长的代码打出了下列代码,make_pair还不是很会,大体理解的意思是可以同时绑 ...
- I - 乓 (BFS+邻接表)
USTC campus network is a huge network. There is a bi-directional link between every pair of computer ...
- bfs 邻接表
#include<stdio.h> #include<stdlib.h> #include<string.h> struct node { int date; st ...
- HDU 1535 Invitation Cards(逆向思维+邻接表+优先队列的Dijkstra算法)
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=1535 Problem Description In the age of television, n ...
- 邻接表(C++)
adj_list_network_edge.h // 邻接表网边数据类模板 template <class WeightType> class AdjListNetworkEdge { p ...
- 图的bfs遍历模板(邻接矩阵存储和邻接表存储)
bfs遍历图模板伪代码: bfs(u){ //遍历u所在的连通块 queue q; //将u入队 inq[u] = true; while (q非空){ //取出q的队首元素u进行访问 for (从u ...
- ACM/ICPC 之 数据结构-邻接表+BFS(TSH OJ-无线广播Broadcast)
这道题中若能够构成互不干扰的区域,其构成的图其实就是汉密尔顿路(Hamilton road),因此如果能够观察出来可以直接转化为汉密尔顿路的存在性证明,即便不能观察,我相信ACMer也能转化为BFS问 ...
- POJ 1511 - Invitation Cards 邻接表 Dijkstra堆优化
昨天的题太水了,堆优化跑的不爽,今天换了一个题,1000000个点,1000000条边= = 试一试邻接表 写的过程中遇到了一些问题,由于习惯于把数据结构封装在 struct 里,结果 int [10 ...
- HD1532Drainage Ditches(最大流模板裸题 + 邻接表)
Drainage Ditches Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) ...
随机推荐
- 设置USB数据监听
设置USB数据监听 在Kali Linux中,USB也是作为一个通信端口进行存在.常见的鼠标.键盘.U盘都是通过USB接口传输数据.所以,对于USB接口也可以实施监听,类似网络接口一样.在进行US ...
- luogu P3811 【模板】乘法逆元
题目背景 这是一道模板题 题目描述 给定n,p求1~n中所有整数在模p意义下的乘法逆元. 输入输出格式 输入格式: 一行n,p 输出格式: n行,第i行表示i在模p意义下的逆元. 输入输出样例 输入样 ...
- java三角形和菱形的打印
一.三角形的打印 package 向家康; import java.util.Scanner; public class Main { public void san(int num) { for(i ...
- 简约至上.md
中秋花了一天多时间阅读了简约至上这本书,书中内容不多,主要是向我们传达了产品设计的4个要素,给了产品经理设计产品时的一些要义指导; 一产品定位 在进行产品设计之前,首页需要对这款产品的商业定位需要有个 ...
- 【css】设置div位于浏览器的最底层,离用户最远
有时候切换发现某块div一直悬浮在最上层,怎么设置div位于浏览器的最底层.离用户最远? <style> .in{ z-index: -1; } </style> 然后引用in ...
- Zxing二维码精简(竖屏、拉伸处理、扫描框大小和扫描线移动)
本帖最后由 levil_ad 于 2013-12-30 13:55 编辑 最近没事做了下二维码扫描,用的是ZXing的开源代码,官方源码地址:http://code.google.com/p/zxin ...
- iOS开发 准确计算Coretext高度
- (int)getAttributedStringHeightWithString:(NSAttributedString *) string WidthValue:(int) width{ ...
- utuntu16.04安装caffe+Matlab2017a+opencv3.1+CUDA8.0+cudnn6.0
上午把tensorflow安装好了,下午和晚上装caffe的确很费劲. 默认CUDA,cuDNN可以用了 caffe官方安装教程 有些安装顺序自己也不清楚,简直就是碰运气 1. 安装之前依赖项 Gen ...
- PHP 实现Word,excel等转换pdf
近期做一个项目,须要将用户上传的word,excel文档转成PDF文档保存并打印.在网上找了非常多资料.并不全面,所以自己写了一份比較全面的教程来分享. 以下是操作步骤: 1. 安装免费 ...
- WPF简单计算器