Le contenu de cet article explique comment créer un arbre binaire en PHP (exemples de code). Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer.
1. Utilisez le principe de récursion, sauf que là où le nœud a été initialement imprimé, il est remplacé par l'opération de génération du nœud et d'attribution d'une valeur au nœud
if(ch= ='#' ){*T=NULL;}else{malloc();(*T)->data=ch;createFunc((*T)->lchild);createFunc((*T)-> rchild);}
2. Parcours en pré-commande : visitez d'abord le nœud racine, parcourez le sous-arbre de gauche en pré-ordre, parcourez le sous-arbre de droite en pré-ordre ; 🎜>3. Mettez les valeurs de chaque nœud dans l'arbre binaire Le pointeur nul mène à un nœud virtuel, dont la valeur est une valeur spécifique # L'arbre binaire traité est un arbre binaire étendu de l'arbre binaire d'origine. l'arbre binaire réalise une séquence de parcours pour déterminer un arbre binaire
<?php class BinTree{ public $data; public $left; public $right; } //前序遍历生成二叉树 function createBinTree(){ $handle=fopen("php://stdin","r"); $e=trim(fgets($handle)); if($e=="#"){ $binTree=null; }else{ $binTree=new BinTree(); $binTree->data=$e; $binTree->left=createBinTree(); $binTree->right=createBinTree(); } return $binTree; } $tree=createBinTree(); var_dump($tree); # object(BinTree)#1 (3) { ["data"]=> string(1) "A" ["left"]=> object(BinTree)#2 (3) { ["data"]=> string(1) "B" ["left"]=> NULL ["right"]=> object(BinTree)#3 (3) { ["data"]=> string(1) "D" ["left"]=> NULL ["right"]=> NULL } } ["right"]=> object(BinTree)#4 (3) { ["data"]=> string(1) "C" ["left"]=> NULL ["right"]=> NULL } }
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!