广度优先搜索
来源:互联网 发布:文化套利分析软件 编辑:程序博客网 时间:2024/05/22 18:23
广度优先搜索就是一个点,把他所有的连接的点都走一遍,然后再从他所连接的点再递归出去
之前写那个深搜的时候写了一个递归和一个循环,但大体思路都差不多,这个也是,所以就写一个循环吧,好理解一点
伪代码:
int flag = 0; // 这个就是标记量,标记有多少个已经走过了,如果这个flag == 总共的点数,那么就代表程序输出结束了
对象 point //每个点是一个对象,属性有连接的点的数组,一个int a变量标记是否已经走过, 0代表没走过,1代表走过
while(true)
{
if(flag == 总共的点)
{
break;
}
if(p.a == 0)
{
System.out.print(p);
flag++;
if(连接点的数组的指针没指向最后)
{
p.a = 这个连接的点;
指针++;
}
else
{
连接的数组变为之前的数组连接点的数组
p.a = 这个连接点;
}
}
else
{
p.a = 上一个点
}
}
void BFS (Graph G,int v){
//按广度优先非递归遍历连通图G
cout<<v; visited[v] = true; //访问第v个顶点
InitQueue(Q); //辅助队列Q初始化,置空
EnQueue(Q, v); //v进队
while(!QueueEmpty(Q)){ //队列非空
DeQueue(Q, u); //队头元素出队并置为u
for(w =FirstAdjVex(G, u); w>=0; w =NextAdjVex(G, u, w))
if(!visited[w]){ //w为u的尚未访问的邻接顶点
cout<<w;visited[w] = true; EnQueue(Q, w); //w进队
}//if
}//while
}//BFS
- 广度优先搜索算法
- 双向广度优先搜索
- 广度优先搜索法
- pku2251(广度优先搜索)
- POJ1184Clerver_Writer:广度优先搜索
- Java广度优先搜索
- [AI]广度优先搜索
- 广度优先搜索-BFS
- 广度优先搜索算法
- 广度优先搜索算法
- BFS广度优先搜索
- 广度优先搜索 BFS
- 广度优先搜索
- [ 算法 ]广度优先搜索!
- 广度优先搜索
- 广度优先搜索算法
- 广度优先搜索算法
- 广度优先搜索
- Android网络编程之HttpUrlConnection【实例解析】
- 第三周星期五
- Caffe源码(五):conv_layer 分析
- 【Jquery】prop与attr的区别
- linux下的命令格式
- 广度优先搜索
- java实现简单算法(三)
- linux设备树dts移植详解
- 十一期机房合作验收总结-2015-8-10
- annotation-driven,annotation-config,component-scan的区别与作用
- poj 1062 昂贵的聘礼 (最短路)
- 用 AXMLPrinter2、baksmali、smali、dex2jar 反编译.xml文件
- oracle中Connect By用法介绍
- 开始博客之旅