Java: Count même des valeurs dans un binaire arbre de recherche récursive

voix
-2

Je dois savoir combien de valeurs encore sont contenues dans un arbre binaire.

voici mon code.

private int countEven(BSTNode root){

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

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


}

ce que je viens de code que je n'ai pas un moyen de tester cela. Je ne suis pas en mesure de le tester au moment, mais besoin d'une réponse si mal. Toute aide est très appréciée.

Créé 02/04/2010 à 14:13
source utilisateur
Dans d'autres langues...                            


2 réponses

voix
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;
}
Créé 02/04/2010 à 14:20
source utilisateur

voix
1

S'il y a un nœud avec une valeur impaire contenant des valeurs sous-noeuds même, les sous-noeuds ne seront pas comptés dans votre code. Petit amélioration ci-dessous.

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


}
Créé 02/04/2010 à 14:21
source utilisateur

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