图的遍历算法 有两种 :深度优先搜索遍历 和 广度 优先搜索遍历。深度优先搜索遍历类似与 树的 先序遍历。广度优先搜索遍历类似与树的层序遍历。只不过 图 可以有 不连通的 节点,所以 得 遍历 整个顶点数组。
深搜遍历 总是 先访问当前节点的邻接点,而 广搜算法 是 先访问顶点的邻接点 要 先于 后访问顶点的邻接点 被 访问。
具体遍历顺序如下:
以下代码 以 图的 邻接多重...
分类:
其他好文 时间:
2015-04-10 13:45:10
阅读次数:
195
给定一个二叉树和一个整数,求是否存在一条从根节点到叶节点的路径,路径上所有点的和等于给定的整数 思路:用广度优先搜索,将当前节点的值传到下一层节点即可。即将每一个节点的值更新为从根节点到该点的值的和 class Solution {public: bool hasPathSum(TreeNode *...
分类:
其他好文 时间:
2015-04-10 11:02:07
阅读次数:
113
求一棵二叉树的最低子树的高度 思路:用队列实现广度优先搜索即可,将每一层的节点放入队列,然后弹出时将下一层节点放入,遇到叶子节点时即返回当前的高度 class Solution {public: int minDepth(TreeNode *root) { if (!root) return 0; ...
分类:
其他好文 时间:
2015-04-09 21:42:15
阅读次数:
105
这一题运用广度优先搜索可以解决,主要是各个状态的转移以及某个状态出现过要标记,避免重复,进入死循环。
下面是AC代码,上面有详细的讲解:
# include
# include
# include
using namespace std;
class data //队列的结点,
{
public:
int water[3]; ...
分类:
其他好文 时间:
2015-04-09 08:53:22
阅读次数:
118
背景(以下背景资料转载自:http://www.cnblogs.com/springfor/p/3874591.html?utm_source=tuicool)DFS(Dpeth-first Search)顾名思义,就是深度搜索,一条路走到黑,再选新的路。记得上Algorithm的时候,教授举得例子就是说,DFS很像好奇的小孩,你给这个小孩几个盒子套盒子,好奇的小孩肯定会一个盒子打开后继续再在这个...
分类:
其他好文 时间:
2015-04-06 17:16:36
阅读次数:
191
1.图的表示a.邻接矩阵:适合稠密图(|E|接近|V|2)//用二维数组表示邻接矩阵int G[|V|][|V|];//初始化for(int i=0;i Adj;//所有顶点};//初始化void AddEdge(Graph &G,int i,int j,int weight,int w[][|V|...
分类:
其他好文 时间:
2015-04-05 20:08:54
阅读次数:
173
广度优先搜索(Breadth-First-Search)和深度优先搜索(Deep-First-Search)是搜索策略中最经常用到的两种方法,特别常用于图的搜索.
BFS的思想:
从一个图的某一个顶点V0出发,首先访问和V0相邻的且未被访问过的顶点V1、V2、……Vn,然后依次访问与V1、V2……Vn相邻且未被访问的顶点。如此继续,找到所要找的顶点或者遍历完整个图。我们采用...
分类:
其他好文 时间:
2015-04-01 15:27:10
阅读次数:
211
#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