当前位置:首页 > 日记 > 正文

PHP实现深度优先搜索算法 | DFS,Depth First Search详解

PHP实现深度优先搜索算法 | DFS,Depth First Search详解

本文实例讲述了PHP实现深度优先搜索算法。分享给大家供大家参考,具体如下:

深度优先搜索的实现原理:

实现代码:

<?phpclass Search_Method{  //无向图的数组描述  private $dfs_save;  //全局记录数组  private $arr;  //控制分支-  private $k = 0;  public function __construct()  {    $this->dfs_save = array(      array(0,1,1,1,0,0,0,0,0),      array(1,0,0,0,1,0,0,0,0),      array(1,0,0,0,0,1,0,0,0),      array(1,0,0,0,0,0,1,0,0),      array(0,1,0,0,0,1,0,0,1),      array(0,0,1,0,1,0,0,1,0),      array(0,0,0,1,0,0,0,0,0),      array(0,0,0,0,0,1,0,0,0),      array(0,0,0,0,1,0,0,0,0),    );    $this->arr = array();  }  //深度优先搜索的递归实现方法  public function dfs($v)  {    //对顶点做一些操作    echo str_repeat("-",$this->k);    echo 'V'.($v+1).'<br>';    //记录已访问的顶点    $this->arr[]= $v;    //查找与顶点相连接的顶点,如果存在就继续深度优先搜索    for($i=0;$i<9;$i++)    {      if(!in_array($i,$this->arr)&&$this->dfs_save[$v][$i]==1)      {        $this->k++;        $this->dfs($i);      }    }    $this->k--;    return;  }}?>

实现输出结果:

V1-V2--V5---V6----V3----V8---V9-V4--V7

更多关于PHP相关内容感兴趣的读者可查看本站专题:《PHP数据结构与算法教程》、《PHP基本语法入门教程》、《php面向对象程序设计入门教程》、《php字符串(string)用法总结》及《php程序设计算法总结》

希望本文所述对大家PHP程序设计有所帮助。

相关文章

ps怎么给照片中的人物画眉?  ps眉

ps怎么给照片中的人物画眉? ps眉

教程,画眉,片中,人物,电脑软件,PS怎么修理么眉毛?今天我们就来看看人物图像后期处理之修眉的教程,请看下文详细介绍。软件名称:Adobe Photoshop 8.0 中文完整绿色破解版软件大小:150.1MB更新时间:2015-11-041、准备好素材。2、用多边形套索工具…

浅谈oracle与分布式数据库的区别

浅谈oracle与分布式数据库的区别

分布式数据库,浅谈,区别,电脑软件,oracle,1。分布式数据库是多个数据库,RAC仅是一个库。 在2.rac交易不存在协调问题,分布式数据库需要事务协调由于多个库。 三.分布式数据库数据存储在每个节点中,但设备一般是廉价的设备,频繁的节点故障,但对用…

浅谈Laravel队列实现原理解决问题

浅谈Laravel队列实现原理解决问题

实现原理,队列,解决问题,浅谈,电脑软件,问题公司项目使用Laravel的开发的两个项目在同一个测试服务器部署,公用同一个redis。在使用laravel中的队列时,产生冲突干扰。查找问题原因在laravel 队列的操作类Illuminate\Queue\RedisQueue.php中…

下载站mime属性设置 让IIS支持.apk

下载站mime属性设置 让IIS支持.apk

支持,文件下载,属性设置,下载站,电脑软件,下载站mime属性设置,让您的服务器支持.apk/ipa/beb/pxl/dmg等文件下载,如果是IIS6.0,让看下图:打开HTTP头--MIME类型---进行相应的设置。一般软件下载.torrentapplication/octet-stream.7zapplication/…

怎么使用cdr中的将文本转换成表格

怎么使用cdr中的将文本转换成表格

文本,转换成,表格,电脑软件,cdr,&ldquo;将文本转换成表格&rdquo;你是否玩过?我将在这里讲述怎么使用CDR里面表格中&ldquo;将文本转换成表格&rdquo;应用,希望对大家有所帮助!此表格轮廓粗细、轮廓颜色、填充颜色,文本内容中字体选择、大小变化都…

nodejs个人博客开发第二步 入口文

nodejs个人博客开发第二步 入口文

文件,个人博客,第二步,入口,电脑软件,本文为大家分享了nodejs个人博客开发的入口文件,具体内容如下错误处理中间件定义错误处理中间件必须使用4个参数,否则会被作为普通中间件/*错误处理器*/application.use(function(err,req,res,next){ con…

PS是如何绘制多彩羽毛的

PS是如何绘制多彩羽毛的

绘制,羽毛,多彩,电脑软件,PS,制作羽毛和颜色,效果是神奇的! 软件名称:Adobe PS图象处理软件8全绿色中文版软件大小:150.1mb更新时间:2015-11-04 1。创建一张地图大小的背景地图,并将背景色设置为黑色。 2。使用钢笔工具和转换工具 3,然后构建一个…

jquery uploadify隐藏上传进度的实

jquery uploadify隐藏上传进度的实

方法,上传,进度,电脑软件,jquery,在配置中添加如下参数即可'onInit': function () { $("#upload_excel-queue").hide(); },以上这篇jquery uploadify隐藏上传进度的实现方法就是小编分享给大家的全部内容了,希望能给大家…

PS图象处理软件CS6油画过滤器创建

PS图象处理软件CS6油画过滤器创建

过滤器,图象,处理软件,效果,电脑软件,今天,我们使用PS图象处理软件CS6油画过滤中文版创建油画效果的教程,很简单,新手,下面用小编辑了解它! PS图象处理软件的CS6油画过滤器创建油画效果的方法 1。用Ctrl + o键打开一个材质镜像文件。 2。选择…

如何制作ppt模板图文教程

如何制作ppt模板图文教程

图文教程,模板,电脑软件,ppt,如何制作ppt模板呢?我身边的朋友很多都请教我怎么制作ppt模板方法,其实制作ppt模板非常的简单,但是制作出漂亮的ppt模板,就需要长时间的积累,今天小编就简单说下制作ppt模板的方法。注意:以ppt2003为例,ppt2007操作步…

如何修改支付宝帐号中的手机号码(图

如何修改支付宝帐号中的手机号码(图

帐号,支付宝,图形,修改,手机号码,有时丢了手机,怕别人用手机偷Alipay账号里的钱,可以马上登录Alipay,修改绑定手机号码,操作方法如下: 首先,找一台电脑上网,打开浏览器,打开支付宝官方网站,用你的账号登录。 然后,点我的账户(下图)。 (如下所示)。 (如…

PS是怎样综合在路上游泳的效果的

PS是怎样综合在路上游泳的效果的

的是,游泳,路上,效果,是怎样,今天我们来看一下PS中合成的技术,这是一个人在路上游泳的效果。请看下面的细节。 软件名称:Adobe PS图象处理软件8全绿色中文版软件大小:150.1mb更新时间:2015-11-04 1,为道路和游泳打开材料。 2,人物被粗略地剪到道…