以下是一个使用PHP实现的深度优先搜索(DFS)的实例,我们将通过一个简单的图结构来演示DFS的算法。
实例背景
假设我们有一个图,包含以下几个顶点(节点)和边(连接):

- 顶点: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
```
表格形式呈现
| 顶点 | 邻接顶点 | 是否访问 |
|---|---|---|
| A | B,C | 是 |
| B | D | 是 |
| C | E | 是 |
| D | 是 | |
| E | 是 |
通过上述表格,我们可以清楚地看到DFS算法的遍历过程和每个顶点的访问状态。







