首頁  >  文章  >  後端開發  >  詳解PHP實現深度優先搜尋演算法

詳解PHP實現深度優先搜尋演算法

巴扎黑
巴扎黑原創
2017-09-18 09:58:591922瀏覽

這篇文章主要介紹了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 &#39;V&#39;.($v+1).&#39;<br>&#39;;
    //记录已访问的顶点
    $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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn