2016-01-21 44 views
1

我想查找二叉搜索樹中的空白節點。 爲此,我使用了遞歸。以下是我的代碼:在php中使用mysql獲取二進制搜索樹中的空白節點

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,但它給了我空白值。
注意:家長只能創建兩個孩子。
例如:假設管理員創建兩個孩子a,b,並且如果他想添加第三個孩子,那麼它將添加到b或c之下,因此爲此,我正在搜索僅有1或0個孩子的空節點或父母,並且如果b和c都有兩個/兩個孩子,那麼它會搜索他們的。

但上面的代碼不會給我父母的id可以有人看到這個問題。 我做錯了什麼

+0

你永遠不會捕獲任何地方的返回值,什麼是echo/exit/break? break永遠不會執行,'echo'輸出,它不返回任何東西。 –

+0

然後如何返回值 –

+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); 
     } 
} 
}