以下是一个使用PHP实现的深度优先搜索(DFS)的实例,我们将通过一个简单的图结构来演示DFS的算法。

实例背景

假设我们有一个图,包含以下几个顶点(节点)和边(连接):

实例PHP详细优先,PHP详细优先搜索实例详解  第1张

  • 顶点:A, B, C, D, E
  • 边:A->B, A->C, B->D, C->E

我们的目标是实现一个DFS算法,从顶点A开始遍历整个图。

PHP代码实现

```php

// 定义图的邻接表

$graph = [

'A' => ['B', 'C'],

'B' => ['D'],

'C' => ['E'],

'D' => [],

'E' => []

];

// 深度优先搜索函数

function depthFirstSearch($graph, $start, &$visited = []) {

// 标记当前顶点为已访问

$visited[$start] = true;

echo $start . ' ';

// 遍历所有邻接顶点

foreach ($graph[$start] as $neighbor) {

// 如果邻接顶点未被访问,则递归访问

if (!isset($visited[$neighbor])) {

depthFirstSearch($graph, $neighbor, $visited);

}

}

}

// 初始化访问数组

$visited = [];

// 从顶点A开始进行深度优先搜索

depthFirstSearch($graph, 'A', $visited);

>

```

输出结果

执行上述PHP代码后,控制台将输出以下结果:

```

A B D C E

```

表格形式呈现

顶点邻接顶点是否访问
AB,C
BD
CE
D
E

通过上述表格,我们可以清楚地看到DFS算法的遍历过程和每个顶点的访问状态。