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基本語(yǔ)法入門教程》、《php面向?qū)ο蟪绦蛟O(shè)計(jì)入門教程》、《php字符串(string)用法總結(jié)》及《php程序設(shè)計(jì)算法總結(jié)》
希望本文所述對(duì)大家PHP程序設(shè)計(jì)有所幫助。
- php 大數(shù)據(jù)量及海量數(shù)據(jù)處理算法總結(jié)
- php中最簡(jiǎn)單的字符串匹配算法
- 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-05php采集中國(guó)代理服務(wù)器網(wǎng)的方法
這篇文章主要介紹了php采集中國(guó)代理服務(wù)器網(wǎng)的方法,涉及php采集的相關(guān)使用技巧,需要的朋友可以參考下2015-06-06一個(gè)基于PDO的數(shù)據(jù)庫(kù)操作類(新) 一個(gè)PDO事務(wù)實(shí)例
原先已經(jīng)寫過一個(gè)PDO的數(shù)據(jù)庫(kù)操作類,這次只是在原先基礎(chǔ)上進(jìn)行修改。2011-07-07支持中文字母數(shù)字、自定義字體php驗(yàn)證碼代碼
支持中文字母數(shù)字、自定義字體php驗(yàn)證碼代碼,需要的朋友可以參考下2012-02-02php 使用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-03php動(dòng)態(tài)讀取數(shù)據(jù)清除最右邊距的方法
下面小編就為大家?guī)硪黄猵hp動(dòng)態(tài)讀取數(shù)據(jù)清除最右邊距的方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-04-04php使用Jpgraph繪制簡(jiǎn)單X-Y坐標(biāo)圖的方法
這篇文章主要介紹了php使用Jpgraph繪制簡(jiǎn)單X-Y坐標(biāo)圖的方法,實(shí)例分析了Jpgraph繪制坐標(biāo)圖及繪制曲線的相關(guān)技巧,需要的朋友可以參考下2015-06-06