PHP實(shí)現(xiàn)深度優(yōu)先搜索算法(DFS,Depth First Search)詳解
本文實(shí)例講述了PHP實(shí)現(xiàn)深度優(yōu)先搜索算法。分享給大家供大家參考,具體如下:
深度優(yōu)先搜索的實(shí)現(xiàn)原理:

實(shí)現(xiàn)代碼:
<?php
class Search_Method
{
//無向圖的數(shù)組描述
private $dfs_save;
//全局記錄數(shù)組
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();
}
//深度優(yōu)先搜索的遞歸實(shí)現(xiàn)方法
public function dfs($v)
{
//對(duì)頂點(diǎn)做一些操作
echo str_repeat("-",$this->k);
echo 'V'.($v+1).'<br>';
//記錄已訪問的頂點(diǎn)
$this->arr[]= $v;
//查找與頂點(diǎn)相連接的頂點(diǎn),如果存在就繼續(xù)深度優(yōu)先搜索
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;
}
}
?>
實(shí)現(xiàn)輸出結(jié)果:
V1 -V2 --V5 ---V6 ----V3 ----V8 ---V9 -V4 --V7
更多關(guān)于PHP相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《PHP數(shù)據(jù)結(jié)構(gòu)與算法教程》、《PHP基本語法入門教程》、《php面向?qū)ο蟪绦蛟O(shè)計(jì)入門教程》、《php字符串(string)用法總結(jié)》及《php程序設(shè)計(jì)算法總結(jié)》
希望本文所述對(duì)大家PHP程序設(shè)計(jì)有所幫助。
- php 大數(shù)據(jù)量及海量數(shù)據(jù)處理算法總結(jié)
- php中最簡單的字符串匹配算法
- PHP經(jīng)典算法集錦【經(jīng)典收藏】
- 關(guān)于PHP遞歸算法和應(yīng)用方法介紹
- PHP面試常用算法(推薦)
- php經(jīng)典算法集錦
- PHP常用算法和數(shù)據(jù)結(jié)構(gòu)示例(必看篇)
- php使用高斯算法實(shí)現(xiàn)圖片的模糊處理功能示例
- php實(shí)現(xiàn)的常見排序算法匯總
- PHP實(shí)現(xiàn)廣度優(yōu)先搜索算法(BFS,Broad First Search)詳解
- 基于PHP實(shí)現(xiàn)的多元線性回歸模擬曲線算法
相關(guān)文章
PHP實(shí)現(xiàn)異步延遲消息隊(duì)列的方法詳解
這篇文章主要為大家詳細(xì)介紹了如何利用PHP+Laravel+RabbitMQ來實(shí)現(xiàn)異步延遲消息隊(duì)列,文中的實(shí)現(xiàn)過程講解詳細(xì),快跟隨小編一起學(xué)習(xí)一下吧2022-05-05
一個(gè)基于PDO的數(shù)據(jù)庫操作類(新) 一個(gè)PDO事務(wù)實(shí)例
原先已經(jīng)寫過一個(gè)PDO的數(shù)據(jù)庫操作類,這次只是在原先基礎(chǔ)上進(jìn)行修改。2011-07-07
支持中文字母數(shù)字、自定義字體php驗(yàn)證碼代碼
支持中文字母數(shù)字、自定義字體php驗(yàn)證碼代碼,需要的朋友可以參考下2012-02-02
php 使用html5 XHR2實(shí)現(xiàn)上傳文件與進(jìn)度顯示功能示例
這篇文章主要介紹了php 使用html5 XHR2實(shí)現(xiàn)上傳文件與進(jìn)度顯示功能,結(jié)合實(shí)例形式分析了php 使用html5上傳文件過程中progress事件返回進(jìn)度信息相關(guān)操作技巧,需要的朋友可以參考下2020-03-03
php動(dòng)態(tài)讀取數(shù)據(jù)清除最右邊距的方法
下面小編就為大家?guī)硪黄猵hp動(dòng)態(tài)讀取數(shù)據(jù)清除最右邊距的方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-04-04
php使用Jpgraph繪制簡單X-Y坐標(biāo)圖的方法
這篇文章主要介紹了php使用Jpgraph繪制簡單X-Y坐標(biāo)圖的方法,實(shí)例分析了Jpgraph繪制坐標(biāo)圖及繪制曲線的相關(guān)技巧,需要的朋友可以參考下2015-06-06

