以下是一个使用PHP实现的深度优先搜索(DFS)的实例,我们将通过一个简单的图来演示DFS的算法。
实例描述
假设我们有一个图,其中包含顶点和边,我们想要使用DFS来遍历这个图。
代码实现
```php
// 定义图的类
class Graph {
private $vertices;
private $adjacencyList;
public function __construct() {
$this->vertices = [];
$this->adjacencyList = [];
}
// 添加顶点
public function addVertex($vertex) {
$this->vertices[] = $vertex;
$this->adjacencyList[$vertex] = [];
}
// 添加边
public function addEdge($source, $destination) {
$this->adjacencyList[$source][] = $destination;
$this->adjacencyList[$destination][] = $source; // 如果是无向图,这一行是必须的
}
// 深度优先搜索
public function dfs($startVertex) {
$visited = [];
$this->dfsRecursive($startVertex, $visited);
return $visited;
}
private function dfsRecursive($vertex, &$visited) {
$visited[$vertex] = true;
echo "