无向图的深度优先搜索与广度优先搜索
#include "stdafx.h"
#include
#include
using namespace std;
#define N 9
typedef struct{
int vexnum, arcnum;
char vexs[N];
int matirx[N][N];
}graph;
graph g;
int a[N] = { 0 ...
分类:
其他好文 时间:
2015-07-19 15:02:39
阅读次数:
93
题目的意思是:给你一个迷宫,0代表墙,1代表路,2代表起始位置,3代表终点,4代表爆破装置。一开始,你在2的位置,求到3的最少步数。
起初,你只有6秒钟的时间,时间减到0,你没到3的位置,代表不能出去,输出-1.想要增加时间,可以引爆爆破装置,引爆之后,时间重置为6,可以引爆多个。到引爆装置的时候,时间必须大于0,不然没有时间可以引爆。
迷宫最大是8 * 8。用广度优先搜索可以简单的解决问题。...
分类:
Web程序 时间:
2015-07-19 12:03:33
阅读次数:
128
Dijkstra’s algorithm使用了广度优先搜索解决非负权图的单源最短路径问题,算法最终得到一个最短路径树。该算法常用于路由算法或者作为其他图算法的一个子模块。举例来说,如果图中的顶点表示城市,而边上的权重表示著城市间开车行经的距离,该算法可以用来找到两个城市之间的最短路径。
其基本原理是:每次新扩展一个距离最短的点,更新与其相邻的点的距离。当所有边权都为正时,由于不会存在一...
分类:
编程语言 时间:
2015-07-12 17:33:46
阅读次数:
184
C++之广度优先搜索算法篇C++之广度优先搜索算法篇 广度优先搜索(又称宽度优先搜索算法)是最简便的图的搜索算法之一,这一算法也是很多重要的图的算法的原型。 Dijkstra单源最短路径算法和Prim最小生成树算法都采用了和宽度优先搜索类似的思想。其别名又叫BFS,属于一种盲目搜寻法,目的是系统.....
分类:
编程语言 时间:
2015-07-12 10:53:45
阅读次数:
180
题目:给定如下图所示的无向连通图,假定图中所有边的权值都为1;显然,从源点A到终点T的最短路径有多条,求不同的最短路径的数目。注:两条路径中有任意结点不同或者结点顺序不同,都称为不同的路径。思路:给定的图中,边权相等且非负,Dijkstra最短路径算法退化为BFS广度优先搜索。实现过程中可以使用队列...
分类:
编程语言 时间:
2015-07-12 09:32:36
阅读次数:
145
图的邻接表表示
对图(有向或无向)G=(为方便记,假定V=1,2,…,n)G=(为方便记,假定V={1, 2, …, n}),其邻接表表示是一个由|V|个链表组成数组,对每个u∈Vu ∈ V,链表Adj[u]称为对应顶点u的邻接表。它包含G中所有与u相邻的顶点。每个邻接表中顶点通常是按任意顺序存放的。
无向图的邻接表表示
有向图的邻接表表示广度...
分类:
编程语言 时间:
2015-07-10 19:13:44
阅读次数:
218
目录:算法一:快速排序算法算法二:堆排序算法算法三:归并排序算法四:二分查找算法算法五:BFPRT(线性查找算法)算法六:DFS(深度优先搜索)算法七:BFS(广度优先搜索)算法八:Dijkstra算法算法九:动态规划算法算法十:朴素贝叶斯分类算法算法一:快速排序算法快速排序是由东尼·霍尔所发展的一...
分类:
编程语言 时间:
2015-07-05 18:08:51
阅读次数:
259
我的博客:http://blog.csdn.net/dawn_moon上一章讲了连连看游戏的主要逻辑,连通算法并有讲如何实现。这个连连看没有使用广度优先搜索算法,采用的是一种比较有技巧的算法,参见前面章节。大致分为几个部分:
直连通
两个点X轴扩展后可以直连通
两个点Y轴扩展后可以直连通
看下连接函数
bool GameScene::link(cocos2d::Vec2 v1, cocos2d::V...
分类:
编程语言 时间:
2015-06-27 10:08:37
阅读次数:
236
我的原创博客:http://blog.csdn.net/dawn_moon好了,在开始讲连连看游戏场景之前先来讲讲连连看算法。连连看算法网上有很多,算法控首先想到的就是广度优先搜索,求出路径,然后求最小拐弯路径。这个算法可以,但是对没有学过算法的同学可能有点困难,我这里也不讲。我百度到一个比较通俗简便的算法,拿来用一下在开始讲算法之前,讲一下地图布局,假设 4*4 的棋盘。
初始化地图,将要加载的图...
分类:
编程语言 时间:
2015-06-18 17:16:46
阅读次数:
210
题目描述;
给定一个二叉树,找出其最小深度。
二叉树的最小深度为根节点到最近叶子节点的距离。
解题思路:
这个题目比较简单。
对于二叉树的问题,首先想到的是采用递归,广度优先搜索。
一个节点一个节点地遍历,直到第一次找到叶子节点为止。
注意编程的细节,代码里面有注释
参考代码:(C++)
/**
* Definition of TreeNod...
分类:
其他好文 时间:
2015-06-18 11:37:11
阅读次数:
112