vérifier si un arbre binaire est un arbre de recherche

J'ai écrit le code suivant pour vérifier si un arbre Binaire est un arbre de recherche. Merci de m'aider à vérifier le code:

D'accord! Le code est publié maintenant. Cette solution simple a été proposé par quelqu'un dans les posts ci-dessous:

IsValidBST(root,-infinity,infinity);

bool IsValidBST(BinaryNode node, int MIN, int MAX) 
{
     if(node == null)
         return true;
     if(node.element > MIN 
         && node.element < MAX
         && IsValidBST(node.left,MIN,node.element)
         && IsValidBST(node.right,node.element,MAX))
         return true;
     else 
         return false;
}
  • quelle langue est-ce écrit dans? Il serait extrêmement utile si vous modifiez votre question à la balise à votre question de manière appropriée. Aussi, vous devez utiliser le code de la balise boutons ({}) pour formater votre code pour la lisibilité. Enfin, quel est le problème avec votre code? Quels sont exactement nous "vérification" pour, êtes-vous une erreur?
  • c'est le code java, et je suis de vérifier si un BinaryNode v satisfait les propriétés d'un arbre de recherche binaire
  • pourquoi avez-vous retourner un Pair() ??
  • j'ai besoin de garder une trace des valeurs max et min
  • pour l'ensemble de l'arbre ? Vous êtes à la recherche du plus petit et le plus grand nombre dans l'ensemble de l'arbre?
  • pour chaque sous-arbre @Petars: NE PAS UTILISER CE POST POUR discuter AVEC des BOBS
  • Je viens de faire une blague:) Vous le savez sans doute qui est Bobby Tables - xkcd.com/327 🙂
  • Je pense que la façon dont vous le faites, vous obtenez seulement la Min et Max pour l'Ensemble de l'Arbre, et non pas de chaque sous-arbre.
  • lol..merci pour le lien
  • J'ai modifié le code..s'il vous plaît laissez-moi savoir si vous pensez que cela fonctionne
  • avez-vous vraiment l'retourner une Paire ? En général, il devrait être évité pour une méthode à faire plus d'une chose. Je pense que vous devriez avoir une méthode qui vérifie si c'est bien un BST, et un autre qui trouve le Min et Max de chaque sous-arbre.
  • par exemple, vous pourriez avoir une méthode isBinarySearchTree() qui vérifie si un arbre est en effet un BST, et puis après vous en assurer, utilisez une autre méthode appelée GetSubTreeValues() qui va mettre toutes les valeurs dans un ArrayList pour chaque sous-arbre.
  • il serait beaucoup plus facile, et il serait aussi plus et regarder de plus correct. Ce code est très compliqué et je ne pense pas que c'est ce que vous voulez.
  • J'ai besoin d'aller maintenant, je vais donc laisser ce que je pense que vous devriez faire. Espérons que cela aide. N'oubliez pas! Chaque méthode == Une Action 🙂 Bonne chance et amusez-vous.
  • fixe un petit quelque chose sur le code! Il y avait un bug sur GetSubTreeValues()
  • Que faire si il y a des entrées en double dans l'arbre? Ne devrait-elle pas être <= Max et >= Min.