2 qq 27625787 qq_27625787 于 2016.04.21 10:58 提问

路径搜索算法联通区域的判断(不使用递归)

假如用一个数组int Map[][]表示地图,地图中0 表示可走,1表示障碍,0 的位置只能向上下左右方向走,那么怎么判断两个不同位置之间是否存在可行的路径呢(如果不把存在的路径搜索出来,并且不使用递归算法找出联通区域),如果不使用递归算法,怎么能判断两点是否联通?

2个回答

m_912311697
m_912311697   2016.04.22 10:48

可以用回溯。不能联通说明必定存在一个结点无法走。找到这个结点就行了,否则就是可联通的

m_912311697
m_912311697   2016.04.22 10:50

是存在一条路径都没有这样的结点,那么就是连通的

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
Open gl 的不规则图形的4联通种子递归填充和扫描线种子递归填充算法实现
http://blog.csdn.net/jiangxinyu/article/details/7911876
广度优先搜索写的连通区域标记算法
之前发过一篇博文是用python写连通区域标记算法,
C#查找8邻域连通域算法
声明:此算法参考了Two-Pass算法,并且按照个人想法做了修改,如果有和其他算法雷同的,请指出 解释就不解释了,直接贴代码 class Program { static int width = 10; static int height = 10; static void Main(string[] args) {
opencv之7.6计算联通区域的形状描述
包围盒:水平放置的最小包围矩形。 Rect boundingRect( InputArray points ) 最小包围圈: void minEnclosingCircle( InputArray points, CV_OUT Point2f& center, CV_OUT float& radius ); 多边形
填充算法(一)递归填充算法
1、 2、 3、
两种连通区域标记算法
一、 One-Pass对应的标记算法(Label.h) 使用: unsigned char label = (unsigned char )fspace_2d(imgMask2.row,imgMask2.col,sizeof(unsigned char)); std::vector shapecenterpoint; int ll = Label::CutAndLable
4联通标记区域
所谓图像的连通域,指的是图像上像素点值相同或者相近的点两两相邻接所组成的一块区域。而对于邻接,有四邻接和八邻接两种,如下: 四邻接          八邻接  上图所示的'O'与‘X’相邻接,本文采取的是4邻接方式。  在查找图像连通域的时候,一般都需要经过一个二值化的过程,将图像的像素值简化成非此即彼的情况,然后通过遍历图像来查找其中一个值是由几个连通域所组成的。如
使用Matlab中regionprops函数获取图像连通区域
申明:本文转载自http://blog.csdn.net/shaoxiaohu1/article/details/40272531 Matlab中regionprops的使用示例 获取图像的连通区域。有这样一幅图, 我们想获取其中的连通区域,可以使用以下代码: src_img_name = 'blue_sky_white_clound_002594.jpg'; img = imrea
OpenCV_连通区域分析(Connected Component Analysis-Labeling)
OpenCV_连通区域分析(Connected Component Analysis/Labeling) 【摘要】本文主要介绍在CVPR和图像处理领域中较为常用的一种图像区域(Blob)提取的方法——连通性分析法(连通区域标记法)。文中介绍了两种常见的连通性分析的算法:1)Two-pass;2)种子填充,并给出了两个算法的基于OpenCV和C++的实现程序。
opencv之7.5提取联通区域的轮廓
提取白色区域的轮廓void findContours( InputOutputArray image, OutputArrayOfArrays contours, int mode, int method, Point offset = Point()); 第一个参数:image但更常用的是二值图像,一般是经过Canny、拉普拉斯等边缘检测