bfs 邻接表
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
struct node
{
int date;
struct node *next; }*h[1000],*head[1000];
int v[10000],vi[10000];
int i,j;
int t,n,m,k;
void chu(int z)
{
for(i=0;i<z;i++)
{h[i]=(struct node*)malloc(sizeof(struct node));
h[i]->next=NULL;
head[i]=h[i];
} }
void chu1(int z)
{
for(i=0;i<z;i++)
{
head[i]=head[i]->next;
}}
void bfs(int K)
{
int jin=0,chu=0;
chu1(n);
int w;
v[jin++]=K;
vi[K]=2;
printf("%d",K);
while(chu<jin)
{w=v[chu++];
if(chu!=1&&vi[w]==1)
{printf(" %d",w);
vi[w]=2;}
while(head[w]!=NULL)
{
if(vi[head[w]->date]==0)
{
v[jin++]=head[w]->date;vi[head[w]->date]=1;
}
head[w]=head[w]->next;
} }
printf("\n");
}
int main()
{ node *p,*q;
scanf("%d",&t);
for(i=0;i<t;i++)
{
scanf("%d%d%d",&n,&m,&k);
chu(n);
memset(vi,0,sizeof(vi));
for(j=0;j<m;j++)
{
int a,b;
scanf("%d%d",&a,&b);
p=(struct node*)malloc(sizeof(struct node));
p->next=NULL;
p->date=b;
h[a]->next=p;
h[a]=p;
p=(struct node*)malloc(sizeof(struct node));
p->next=NULL;
p->date=a;
h[b]->next=p;
h[b]=p;
}
bfs(k);
}
}
bfs 邻接表的更多相关文章
- bfs 邻接表(需要优化 可能会RE *【模板】)
//---基于邻接表的bfs #include <stdio.h> #include <string.h> #include <iostream> #include ...
- I - 乓 (BFS+邻接表)
USTC campus network is a huge network. There is a bi-directional link between every pair of computer ...
- ACM/ICPC 之 数据结构-邻接表+BFS(TSH OJ-无线广播Broadcast)
这道题中若能够构成互不干扰的区域,其构成的图其实就是汉密尔顿路(Hamilton road),因此如果能够观察出来可以直接转化为汉密尔顿路的存在性证明,即便不能观察,我相信ACMer也能转化为BFS问 ...
- 数据结构 《2》----基于邻接表表示的图的实现 DFS(递归和非递归), BFS
图通常有两种表示方法: 邻接矩阵 和 邻接表 对于稀疏的图,邻接表表示能够极大地节省空间. 以下是图的数据结构的主要部分: struct Vertex{ ElementType element; // ...
- 数据结构学习笔记05图 (邻接矩阵 邻接表-->BFS DFS、最短路径)
数据结构之图 图(Graph) 包含 一组顶点:通常用V (Vertex) 表示顶点集合 一组边:通常用E (Edge) 表示边的集合 边是顶点对:(v, w) ∈E ,其中v, w ∈ V 有向边& ...
- 邻接表实现Dijkstra算法以及DFS与BFS算法
//============================================================================ // Name : ListDijkstr ...
- 数据结构(11) -- 邻接表存储图的DFS和BFS
/////////////////////////////////////////////////////////////// //图的邻接表表示法以及DFS和BFS //////////////// ...
- 用邻接表实现DFS和BFS
#include <stdio.h> #include <stdlib.h> #define MAXVERTEX 10 typedef char VertexType; //顶 ...
- 无向图的 DFS 和 BFS实现 (以邻接表存储的图)
#include <iostream> #include <queue> using namespace std; #define MaxVertexNum 10 typede ...
随机推荐
- 发展城市 BZOJ 3700
发展城市 [问题描述] 众所周知,Hzwer学长是一名高富帅,他打算投入巨资发展一些小城市. Hzwer打算在城市中开N个宾馆,由于Hzwer非常壕,所以宾馆必须建在空中,但是这样就必须建立宾馆之间的 ...
- 计算机windows7连接打印机
计算机连接打印机 (1)查看打印机的名字. 示例,打印机名为 HP LaserJet M1522 .... (2)打开windows开始菜单,点击[设备和打印机],然后查看打印机和传真那个区域是否有打 ...
- Java 并发编程中的 CountDownLatch 锁用于多个线程同时开始运行或主线程等待子线程结束
Java 5 开始引入的 Concurrent 并发软件包里面的 CountDownLatch 其实可以把它看作一个计数器,只不过这个计数器的操作是原子操作,同时只能有一个线程去操作这个计数器,也就是 ...
- 用“道”的思想解决费用流问题---取/不取皆是取 (有下界->有上界) / ACdreamoj 1171
题意: 给一个矩阵,给出约束:i(0<i<n)行至少去ai个数,j行至少取bi个数,要求取的数值之和最小. 开始一见,就直接建了二分图,但是,发现这是有下界无上界最小费用流问题,肿么办.. ...
- c字符和字符数组/字符串
一维和二维的都可以:一维的情况如下:1,char string0[10];2,char string1[]="prison break";3,char string2[100]=& ...
- OpenCV、PCL;Xtion、kinect;OpenNI、kinect for windows SDK比较
一.对比介绍: 1. OpenCV:开源跨平台,OpenCV于1999年由Intel建立,如今由Willow Garage提供支持. 2. OpenNI:OpenNI组织创建于2010年11月.主要成 ...
- sql-trace-10046-trcsess-and-tkprof
https://oracle-base.com/articles/misc/sql-trace-10046-trcsess-and-tkprof awr/statspack,sqlprofile,sq ...
- vueSSR渲染原理
优点:利于搜索引擎,解决白屏问题,因为正常情况下在index.html文件中只有一个简单的标签,没有内容,不利于爬虫搜索 场景:交互少,数据多,例如新闻,博客,论坛类等 原理:相当于服务端前面加了一层 ...
- Solidworks如何标注垂直度,平行度
1 标注一个基准特征,放到一个平面的线上即可,比如下图生成了一个基准面A 2 点击形位公差,设置形位公差的符号,公差值,相对基准面(主要那一栏),然后不要点确定,直接在图上点击某个面,就生成一个形 ...
- 重新认识一遍JavaScript
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...