Maison >développement back-end >tutoriel php >Structure des données PHP : exploration de l'arborescence, maîtrise de l'organisation des données hiérarchiques
Une structure arborescente est une structure non linéaire qui organise hiérarchiquement les données et peut être représentée et parcourue de manière récursive ou itérative en PHP. Les méthodes de représentation incluent la récursivité (en utilisant la classe) et l'itération (en utilisant un tableau) ; les méthodes de parcours incluent le parcours récursif et le parcours itératif (en utilisant la pile). Dans le cas réel, l'arborescence des répertoires du système de fichiers est organisée efficacement à l'aide d'une structure arborescente pour faciliter la navigation et l'obtention d'informations.
Exploration de la structure arborescente PHP : un outil puissant pour l'organisation hiérarchique des données
La structure arborescente est une structure de données non linéaire qui organise les données de manière hiérarchique, ce qui est très approprié pour les données qui doivent exprimer des relations hiérarchiques . En PHP, les structures arborescentes peuvent être représentées et parcourues par récursivité ou itération.
Représenter une structure arborescente
Il existe deux manières principales de représenter une structure arborescente en PHP :
Représentation récursive :
class Node { public $value; public $children = []; public function __construct($value) { $this->value = $value; } public function addChild(Node $child) { $this->children[] = $child; } }
Représentation itérative (à l'aide de tableaux) :
$tree = [ 'value' => 'Root', 'children' => [ [ 'value' => 'Child 1', 'children' => [] ], [ 'value' => 'Child 2', 'children' => [ 'value' => 'Grandchild' ] ] ] ];
Parcours de la structure arborescente
La structure des arbres peut être traversée de deux manières suivantes:
Récursive Traversion:
function traverseRecursively($node) { echo $node->value . PHP_EOL; foreach ($node->children as $child) { traverseRecursively($child); } }
iterative Traversal (Utilisation de la pile):
Rfunction traverseIteratively($node) { $stack = [$node]; while (!empty($stack)) { $current = array_pop($stack); echo $current->value . PHP_EOL; foreach (array_reverse($current->children) as $child) { $stack[] = $child; } } }
Case pratique: arbre du répertoire du système de fichiers
Consider a Arborescence de répertoires du système de fichiers dans laquelle chaque répertoire contient des sous-répertoires et des fichiers. Cette structure de données peut être organisée et représentée efficacement à l’aide d’une structure arborescente.
class Directory { public $name; public $children = []; public function __construct($name) { $this->name = $name; } public function addChild(Node $child) { $this->children[] = $child; } } $root = new Directory('/'); $dir1 = new Directory('dir1'); $dir2 = new Directory('dir2'); $dir3 = new Directory('dir3'); $file1 = new File('file1.txt'); $file2 = new File('file2.php'); $dir1->addChild($file1); $dir2->addChild($file2); $root->addChild($dir1); $root->addChild($dir2); $root->addChild($dir3); traverseRecursively($root);
En utilisant la structure arborescente, nous pouvons facilement parcourir et organiser l'arborescence des répertoires du système de fichiers et obtenir efficacement les informations requises.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!