Heim > Backend-Entwicklung > PHP-Tutorial > PHP-Datenstruktur: Erkundung der Baumstruktur, Beherrschung der Organisation hierarchischer Daten

PHP-Datenstruktur: Erkundung der Baumstruktur, Beherrschung der Organisation hierarchischer Daten

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Freigeben: 2024-06-02 19:28:02
Original
1273 Leute haben es durchsucht

Eine Baumstruktur ist eine nichtlineare Struktur, die Daten hierarchisch organisiert und in PHP rekursiv oder iterativ dargestellt und durchlaufen werden kann. Zu den Darstellungsmethoden gehören Rekursion (unter Verwendung einer Klasse) und Iteration (unter Verwendung eines Arrays). Zu den Durchquerungsmethoden gehören rekursive Durchquerung und iterative Durchquerung (unter Verwendung eines Stapels). Im tatsächlichen Fall wird der Verzeichnisbaum des Dateisystems mithilfe einer Baumstruktur effizient organisiert, um das Durchsuchen und Abrufen von Informationen zu erleichtern.

PHP-Datenstruktur: Erkundung der Baumstruktur, Beherrschung der Organisation hierarchischer Daten

PHP Tree Structure Exploration: Ein leistungsstarkes Tool für die hierarchische Datenorganisation

Baumstruktur ist eine nichtlineare Datenstruktur, die Daten hierarchisch organisiert, was sich sehr gut für Daten eignet, die hierarchische Beziehungen ausdrücken müssen . In PHP können Baumstrukturen entweder durch Rekursion oder Iteration dargestellt und durchlaufen werden.

Darstellen einer Baumstruktur

Es gibt zwei Hauptmethoden, um eine Baumstruktur in PHP darzustellen:

Rekursive Darstellung:

class Node {
  public $value;
  public $children = [];

  public function __construct($value) {
    $this->value = $value;
  }

  public function addChild(Node $child) {
    $this->children[] = $child;
  }
}
Nach dem Login kopieren

Iterative Darstellung (unter Verwendung von Arrays):

$tree = [
  'value' => 'Root',
  'children' => [
    [
      'value' => 'Child 1',
      'children' => []
    ],
    [
      'value' => 'Child 2',
      'children' => [
        'value' => 'Grandchild'
      ]
    ]
  ]
];
Nach dem Login kopieren

Durchqueren des Baums Struktur

Die Baumstruktur kann auf die folgenden zwei Arten durchlaufen werden:

Rekursive Durchquerung:

function traverseRecursively($node) {
  echo $node->value . PHP_EOL;
  foreach ($node->children as $child) {
    traverseRecursively($child);
  }
}
Nach dem Login kopieren

Iterative Durchquerung (mit Stapel):

function 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;
    }
  }
}
Nach dem Login kopieren

Praktischer Fall: Dateisystemverzeichnisbaum

Betrachten Sie a Ein Dateisystem-Verzeichnisbaum, in dem jedes Verzeichnis Unterverzeichnisse und Dateien enthält. Diese Datenstruktur kann mithilfe einer Baumstruktur effizient organisiert und dargestellt werden.

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);
Nach dem Login kopieren

Durch die Verwendung der Baumstruktur können wir den Verzeichnisbaum des Dateisystems einfach durchsuchen und organisieren und die erforderlichen Informationen effizient abrufen.

Das obige ist der detaillierte Inhalt vonPHP-Datenstruktur: Erkundung der Baumstruktur, Beherrschung der Organisation hierarchischer Daten. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage