In diesem Artikel wird hauptsächlich die Methode zum Erstellen eines Binärbaumalgorithmus in PHP vorgestellt. Ich hoffe, dass er für alle hilfreich ist.
Baum ist in der Datenstruktur immer noch sehr wichtig. Hier wird der Binärbaum durch Klammernotation dargestellt. Schreiben Sie zuerst eine Binärbaumknotenklasse:
// 二叉树节点 class BTNode { public $data; public $lchild = NULL; public $rchild = NULL; public function __construct($data) { $this->data = $data; } }
Erstellen Sie dann den Binärbaum:
function CreateBTNode(&$root,string $str) { $strArr = str_split($str); $stack = []; $p = NULL; // 指针 $top = -1; $k = $j = 0; $root = NULL; foreach ($strArr as $ch) { switch ($ch) { case '(': $top++; array_push($stack, $p); $k = 1; break; case ')': array_pop($stack); break; case ',': $k = 2; break; default: $p = new BTNode($ch); if($root == NULL) { $root = $p; } else { switch ($k) { case 1: end($stack)->lchild = $p; break; case 2: end($stack)->rchild = $p; break; } } break; } } }
Hier schreiben Sie eine Funktion zum Drucken eines Binärbaums (in-order Traversal):
function PrintBTNode($node) { if($node != NULL) { PrintBTNode($node->lchild); echo $node->data; PrintBTNode($node->rchild); } }
Laufendes Ergebnis:
Enter eine Zeichenfolge
"A(B(C,D),G(F))"
Das Obige ist der gesamte Inhalt dieses Artikels, ich hoffe, das wird so sein hilfreich für das Studium aller sein.
PHP-KonstruktionBinärer BaumalgorithmusBeispielcode
Binärer Baumalgorithmus und Beispiele für KMP-Algorithmen, implementiert in Python
KMP-Algorithmus implementiert in PHP
Das obige ist der detaillierte Inhalt vonSo implementieren Sie den Binärbaum-Algorithmus in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!