Java: Contar valores pares en un árbol binario de búsqueda de forma recursiva

votos
-2

Necesito saber cuántos valores aún están contenidos en un árbol binario.

este es mi código.

private int countEven(BSTNode root){

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

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


}

esto yo sólo codificado como no tengo una manera de probar esto. No soy capaz de probarlo en el momento pero necesito una respuesta tan mal. cualquier ayuda es muy apreciada.

Publicado el 02/04/2010 a las 14:13
fuente por usuario
En otros idiomas...                            


2 respuestas

votos
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;
}
Respondida el 02/04/2010 a las 14:20
fuente por usuario

votos
1

Si hay un nodo con un valor impar contiene subnodos con valores pares, los subnodos no serán contados en el código. Pequeña mejora a continuación.

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


}
Respondida el 02/04/2010 a las 14:21
fuente por usuario

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