Maison  >  Article  >  développement back-end  >  Comment créer un arbre binaire en php (exemple de code)

Comment créer un arbre binaire en php (exemple de code)

不言
不言avant
2018-11-17 17:31:513150parcourir

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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer