Java: Μετρήστε ακόμη τιμών σε μια δυαδική αναζήτηση δέντρο αναδρομικά

ψήφοι
-2

Πρέπει να μάθετε πόσα ακόμα οι τιμές που περιέχονται σε ένα δυαδικό δέντρο.

Αυτό είναι ο κωδικός μου.

private int countEven(BSTNode root){

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

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


}

Αυτό εγώ απλά κωδικοποιούνται ως δεν έχω έναν τρόπο για να ελέγξετε αυτό έξω. Δεν είμαι σε θέση να το δοκιμάσετε αυτή τη στιγμή, αλλά χρειάζονται μια απάντηση τόσο άσχημα. Οποιαδήποτε βοήθεια είναι βαθιά ευπρόσδεκτη.

Δημοσιεύθηκε 02/04/2010 στις 14:13
πηγή χρήστη
Σε άλλες γλώσσες...                            


2 απαντήσεις

ψήφοι
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;
}
Απαντήθηκε 02/04/2010 στις 14:20
πηγή χρήστη

ψήφοι
1

Αν υπάρχει ένας κόμβος με μια περίεργη σχέση που περιέχουν subnodes ακόμη και με τις αξίες, τα subnodes δεν θα υπολογίζονται στον κώδικά σας. Μικρή βελτίωση στη συνέχεια.

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


}
Απαντήθηκε 02/04/2010 στις 14:21
πηγή χρήστη

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