实例php 树算法,PHP实现树形算法实例详解
以下是一个使用PHP实现的树形算法实例,我们将通过一个简单的员工组织结构来展示如何构建和遍历树形结构。
1. 数据结构定义
我们定义一个简单的员工类,用于存储员工信息。

```php
class Employee {
public $id;
public $name;
public $parent_id = 0; // 0 表示顶级节点
public function __construct($id, $name, $parent_id = 0) {
$this->id = $id;
$this->name = $name;
$this->parent_id = $parent_id;
}
}
```
2. 构建树形结构
接下来,我们将创建一个函数来构建树形结构。
```php
function buildTree($employees) {
$tree = [];
foreach ($employees as $employee) {
$tree[$employee->id] = $employee;
}
foreach ($tree as $employee) {
if ($employee->parent_id != 0) {
$tree[$employee->parent_id]->children[] = $employee;
}
}
return $tree;
}
```
3. 数据示例
```php
$employees = [
new Employee(1, 'CEO'),
new Employee(2, 'CTO', 1),
new Employee(3, 'CFO', 1),
new Employee(4, 'Engineering', 2),
new Employee(5, 'HR', 1),
new Employee(6, 'Software Engineer', 4),
new Employee(7, 'HR Manager', 5),
];
```
4. 构建树形结构
```php
$tree = buildTree($employees);
```
5. 遍历树形结构
我们可以通过递归的方式遍历树形结构。
```php
function printTree($employee, $level = 0) {
echo str_repeat(' ', $level) . $employee->name . "