Binaire un Arbre de Recherche mises en œuvre en Java - Rechercher un Élément de manière récursive

À l'aide de Java, est-il possible d'écrire une méthode récursive pour trouver un élément dans un arbre de recherche binaire? Je dis non à cause de la nature de récursive re-traçage en arrière, à moins que j'ai mis en œuvre de façon incorrecte? J'ai été chercher sur internet et tout ce que je peux trouver est un processus itératif en version. Voici ma méthode:

public boolean findValueRecursively(BSTNode node, int value){
   boolean isFound = false;
   BSTNode currentNode = node;

   if (value == currentNode.getData()){
      isFound = true;
      return isFound;
   } else if (value < currentNode.getData()){
      findValueRecursively(currentNode.getLeftNode(), value);
   } else{
      findValueRecursively(currentNode.getRightNode(), value);
   }

  return isFound;
}

//Node data structure
public class BSTNode
{
    private BSTNode leftNode;
    private BSTNode rightNode;
    private int data;
    public BSTNode(int value, BSTNode left, BSTNode right){
       this.leftNode = left;
       this.rightNode = right;
       this.data = value;
    }
}



public static void main(String[] args){
    BST bst = new BST();
    //initialize the root node
    BSTNode bstNode = new BSTNode(4, null, null);
    bst.insert(bstNode, 2);
    bst.insert(bstNode, 5);
    bst.insert(bstNode, 6);
    bst.insert(bstNode, 1);
    bst.insert(bstNode, 3); 
    bst.insert(bstNode, 7);
    if (bst.findValueRecursively(bstNode, 7)){
        System.out.println("element is found! ");
    } else{
        System.out.println("element is not found!");
    }
 }

Je reçois l'impression que "l'élément n'est pas trouvé".

Toute aide/conseils ou des suggestions, plus que la bienvenue.

Merci d'avance!

OriginalL'auteur Allen | 2013-09-21