深度优先遍历在图的遍历中,其中深度优先遍历和广度优先遍历是最常见,也最简单的两种遍历方法。深度优先遍历的思想就是一直向下找,找到尽头之后再去其他分支查找。在上一篇博客中我已经写了广度优先遍历(BFS)。
想看的传送门:图的广度优先遍历代码实现这里实现和BFS的差别在于,在BFS中,我们使用的容器是队列(queue),是先进先出的, 而在DFS中我们需要使用的是栈(stack)一个先进后出的容器。其...
分类:
编程语言 时间:
2015-04-01 17:48:45
阅读次数:
196
广度优先搜索(Breadth-First-Search)和深度优先搜索(Deep-First-Search)是搜索策略中最经常用到的两种方法,特别常用于图的搜索.
BFS的思想:
从一个图的某一个顶点V0出发,首先访问和V0相邻的且未被访问过的顶点V1、V2、……Vn,然后依次访问与V1、V2……Vn相邻且未被访问的顶点。如此继续,找到所要找的顶点或者遍历完整个图。我们采用...
分类:
其他好文 时间:
2015-04-01 15:27:10
阅读次数:
211
广度优先遍历广度优先遍历是非常常见和普遍的一种图的遍历方法了,除了BFS还有DFS也就是深度优先遍历方法,我在我下一篇博客里面会写。遍历过程相信每个看这篇博客的人,都能看懂邻接链表存储图。
不懂的人,请先学下图的存储方法。在我的之前博客里。
传送门:图表示方法然后我们假设有一个图如下:
节点1->3->NULL
节点2->NULL
节点3->2->4->NULL
节点4->...
分类:
编程语言 时间:
2015-04-01 07:07:28
阅读次数:
173
#include
#include
#include
#define VERTEX_NUM 8
typedef enum {FALSE = 0, TRUE = 1}BOOL;
typedef struct ArcNode {
int adjvex;
struct ArcNode *nextarc; // struct不能少
}ArcNode;
BOOL visi...
分类:
其他好文 时间:
2015-03-30 09:26:01
阅读次数:
201
宽度优先搜索算法(又称广度优先搜索)是最简便的图的搜索算法之一,这一算法也是很多重要的图的算法的原型。Dijkstra单源最短路径算法和Prim最小生成树算法都采用了和宽度优先搜索类似的思想。poj3278思路:根节点n, n+1,n-1,2*n三个子节点不断地延伸,目标节点k,寻找这样一天最短的路...
分类:
其他好文 时间:
2015-03-28 18:38:46
阅读次数:
169
背景:ac的比较顺利,看来写完代码之后再扫视一下全代码是个不错的方法。
思路:就是对千位百位十位个位都进行扩展的广度优先搜索。
这里还提供一种bfs思路:把1000到9999的所有素数都放到list里,每次对于一个数,在list找出所有和它只有一个数字不相同的数字加入队列中,直到找到目标数组。
我的代码#include
#include
#include
#include
#include
...
分类:
其他好文 时间:
2015-03-21 15:40:47
阅读次数:
146
深度优先搜索算法(Depth First Search),是搜索算法的一种。是沿着树的深度遍历树的节点,尽可能深的搜索树的分支。
当节点v的所有边都己被探寻过,搜索将回溯到发现节点v的那条边的起始节点。这一过程一直进行到已发现从源节点可达的所有节点为止。如果还存在未被发现的节点,则选择其中一个作为源节点并重复以上过程,整个进程反复进行直到所有节点都被访问为止。
二叉树的深度优先遍历和先序遍...
分类:
其他好文 时间:
2015-03-20 10:57:09
阅读次数:
150
function Graph(v) { this.vertices = v; //初始化顶点 this.edges = 0; //边数先设置为0 this.adj = []; //为每一个顶点准备一个链表,表示它和所有节点的关系 for (var i = 0...
分类:
编程语言 时间:
2015-03-18 17:42:17
阅读次数:
377
我们用字符串代表图的顶点(vertax),来模拟学校中Classroom, Square, Toilet, Canteen, South Gate, North Gate几个地点,然后计算任意两点之间的最短路径。
如,我想从North Gate去Canteen, 程序的输出结果应为: BFS: From [North Gate] to [Canteen]:
North Gate...
分类:
编程语言 时间:
2015-03-15 07:07:45
阅读次数:
231
http://poj.org/problem?id=3414记录瓶子状态,广度优先搜索即可#include #include #include using namespace std;const int maxn=101;int n,m;typedef unsigned long long ull;...
分类:
其他好文 时间:
2015-03-14 21:23:22
阅读次数:
151