根据前序序列和中序序列,重建一颗树(php递归实现)
class treenode{ public $data; public $lchild = null; public $rchild = null; public function __construct($data='',$lchild=null,$rchild=null){ $this->data = $data; $this->lchild = $lchild; $this->rchild = $rchild; }}
//根据前序和中序,重建一颗树 //$pre 前序遍历的数组 //$mid 中序遍历的数组 function buildtree($pre,$mid){ $cnt = count($mid); if($cnt0) $node->lchild = buildtree(array_slice($pre,1,$lenl),array_slice($mid,0,$lenl)); if($lenr>0) $node->rchild = buildtree(array_slice($pre,$lenl+1,$lenr),array_slice($mid,$lenl+1,$lenr)); return $node; } $mid = array(4,7,2,1,5,3,8,6); $pre = array(1,2,4,7,3,5,6,8); $node = buildtree($pre,$mid); echo ''; var_dump($node); echo '
';
版权声明:本文为博主原创文章,未经博主允许不得转载。