Java: Count i hodnoty v binární vyhledávací strom rekurzivně

hlasů
-2

Musím zjistit, kolik ještě hodnoty jsou obsaženy v binárním stromu.

To je můj kód.

private int countEven(BSTNode root){

if ((root == null)|| (root.value%2==1))
return 0;

return 1+ countEven(root.left) + countEven(root.right);


}

to i jen kódovat nemám způsob, jak vyzkoušet to. Nejsem schopen vyzkoušet si to v tuto chvíli, ale je třeba odpovědět tak špatně. Každá pomoc je velmi ceněn.

Položena 02/04/2010 v 14:13
zdroj uživatelem
V jiných jazycích...                            


2 odpovědí

hlasů
0
private int countEven(BSTNode root) {
   if (root == null)
      return 0;

   int n = countEven(root.left) + countEven(root.right);
   if(root.value % 2 == 0)
      return n + 1;
   else
      return n;
}
Odpovězeno 02/04/2010 v 14:20
zdroj uživatelem

hlasů
1

Dojde-li k uzlu s lichým hodnotou obsahující poduzlů s ještě hodnotami jsou poduzly nebudou započítány v kódu. Malé zvýšení níže.

private int countEven(BSTNode root){

  if (root == null)
    return 0;

  int val = (root.value%2==1) ? 0 : 1;

  return val + countEven(root.left) + countEven(root.right);


}
Odpovězeno 02/04/2010 v 14:21
zdroj uživatelem

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more