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

 更新时间:2017年09月16日 11:35:36   作者:软货  
这篇文章主要介绍了PHP实现深度优先搜索算法(DFS,Depth First Search),简单分析了深度优先搜索算法的原理并结合具体实例给出了php实现深度优先搜索的具体步骤与相关操作技巧,需要的朋友可以参考下

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

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

实现代码:

<?php
class 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程序设计有所帮助。

相关文章

  • win2003服务器使用WPS的COM组件的一些问题解决方法

    win2003服务器使用WPS的COM组件的一些问题解决方法

    项目中使用了新功能,gump同学研究出来的使用WPS的COM组件用PHP实现将doc等office格式转换成pdf
    2012-01-01
  • php里array_work用法实例分析

    php里array_work用法实例分析

    这篇文章主要介绍了php里array_work用法,实例分析了array_work方法实现针对数组中每个元素应用函数返回的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-07-07
  • 在PHP上显示JFreechart画的统计图方法

    在PHP上显示JFreechart画的统计图方法

    在JSP上的servlet能完全的显示出JFreechart画的统计图,但是和其他语言混合运用就不能显示了,下面为大家介绍下如何在PHP上显示JFreechart
    2013-11-11
  • 浅谈PHP的exec()函数无返回值排查方法(必看)

    浅谈PHP的exec()函数无返回值排查方法(必看)

    下面小编就为大家带来一篇浅谈PHP的exec()函数无返回值排查方法(必看)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-03-03
  • php 生成WML页面方法详解

    php 生成WML页面方法详解

    WAP(无线通讯协议)是在数字移动电话、个人手持设备(PDA等)及计算机之间进行通讯的开放性全球标准。
    2009-08-08
  • php中实现字符串翻转的方法

    php中实现字符串翻转的方法

    本文主要介绍了实现php字符串翻转的方法,具有很好的参考价值,下面跟着小编一起来看下吧
    2017-02-02
  • 关于PHP开发的9条建议

    关于PHP开发的9条建议

    这篇文章主要介绍了关于PHP开发的9条建议,都是个人的一些经验总结,有需要的小伙伴可以参考下。
    2015-07-07
  • ThinkPHP中跨域请求设置的几种方式

    ThinkPHP中跨域请求设置的几种方式

    这篇文章主要介绍了ThinkPHP中跨域请求设置的几种方式,文中通过代码示例讲解的非常详细,对大家的学习或工作有一定的帮助,需要的朋友可以参考下
    2025-01-01
  • DOM XPATH获取img src值的query

    DOM XPATH获取img src值的query

    php中用DOM XPATH获取img src值的代码,需要的朋友可以参考下
    2013-09-09
  • PHP5中使用PDO连接数据库的方法

    PHP5中使用PDO连接数据库的方法

    PDO(PHP Data Object) 是PHP 5 中加入的东西,是PHP 5新加入的一个重大功能,因为在PHP 5以前的php4/php3都是一堆的数据库扩展来跟各个数据库的连接和处理,什么 php_mysql.dll、php_pgsql.dll、php_mssql.dll、php_sqlite.dll等等。
    2010-08-08

最新评论