在php中使用mysql在二进制搜索树中获取空白节点

时间:2016-01-21 15:08:24

标签: php mysql recursion depth-first-search

我想在二叉搜索树中找出空白节点。 为此,我使用了递归。以下是我的代码:

function getNullNode($catid){       
$sql        = "select * from `mlm_reg` where `key` ='".$catid."'";
$result     = mysql_query($sql);
$getnnum    = mysql_num_rows($result); 
        while($fetchCat = mysql_fetch_object($result)){
            if(count($fetchCat) < 2){
                $newId = $catid;
                return $newId;  
            } else {
                getNullNode($fetchCat->mlm_id);
        } 
    } 
}

mlm_id是用户ID和密钥=引用ID,但它给了我空白值 注意:父母只能创建两个孩子 示例:假设admin创建两个子a,b并且如果他想要添加第三个子,那么它将在b或c下添加,所以为此我正在搜索只有1或0个子节点的空节点或父节点,如果b和c都有两个/两个孩子然后它将搜索他们。

但上面的代码不会给我父母ID可以有人看到这个问题。 我做错了什么

1 个答案:

答案 0 :(得分:0)

function getNullNode($catid){   
$sql        = '';
$result     = '';
$getnnum    = '';
$fetchCat   = '';
$sql        = "select * from `mlm_reg` where `key` ='".$catid."'";
$result     = mysql_query($sql);
$getnnum    = mysql_num_rows($result); 
if($getnnum < 2){
    return $catid;
} else {
        while($fetchCat = mysql_fetch_object($result)){
            return getNullNode($fetchCat->mlm_id);
        } 
 } 
}