深度優(yōu)先搜索(dfs)是一種算法,用于遞歸地遍歷樹或圖數(shù)據(jù),先向下遍歷當(dāng)前節(jié)點的所有子節(jié)點,然后返回到父節(jié)點并繼續(xù)遍歷。使用 php 遞歸函數(shù)實現(xiàn) dfs 的步驟如下:標(biāo)記節(jié)點已訪問。打印節(jié)點。遍歷子節(jié)點。
使用 PHP 遞歸函數(shù)實現(xiàn)深度優(yōu)先搜索(DFS)
深度優(yōu)先搜索(DFS)是一種用于遍歷樹或圖數(shù)據(jù)的算法。它以當(dāng)前節(jié)點開始,遞歸地向下遍歷其所有可訪問的子節(jié)點,然后再返回到其父節(jié)點并繼續(xù)遍歷。
使用 PHP 遞歸函數(shù)實現(xiàn) DFS 如下:
function dfs($graph, $node) { // 標(biāo)記節(jié)點已訪問 $graph[$node]['visited'] = true; // 打印節(jié)點 echo $node . "\n"; // 遍歷子節(jié)點 foreach ($graph[$node]['children'] as $child) { if (!$graph[$child]['visited']) { dfs($graph, $child); } } } // 實戰(zhàn)案例 $graph = [ 'A' => ['children' => ['B', 'C']], 'B' => ['children' => ['D', 'E']], 'C' => ['children' => ['F', 'G']], 'D' => ['children' => []], 'E' => ['children' => []], 'F' => ['children' => []], 'G' => ['children' => []], ]; dfs($graph, 'A');
登錄后復(fù)制