PHP实现二叉树

16 篇文章 0 订阅

前言

php的局限性导致部分数据结构比较难实现,最近面试问的较多的就是这个问题。现在总结了下

思路

还是需要约定特殊的规则,将有序数组变为二叉树结构。

代码如下

<?php
class myTreeNode
{

    public $root;
    public $left;
    public $right;
      
}


class bulitTree
{
    public $data;

function buildTree()
{

    $v = array_shift($this->data);
    if($v === '#'){
        $Btree  = NUll;
    }else{
        $Btree = new myTreeNode;

        $Btree->root = $v;
        $Btree->left = $this->buildTree($this->data);

        $Btree->right = $this->buildTree($this->data);

    }

    return $Btree ;
}


}




$ar = array('A','B','#','D','#','#','C','#','#');
$obj = new bulitTree();
$obj->data = $ar;
$tree = $obj->buildTree($ar);
var_dump($tree);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值