Bir ikili ağaç verildiğinde, bunun bir ikili arama ağacı olup olmadığını kontrol edin. Bunu yapmak için bir Java işlevi yazın. Düğüm sınıfının uygulandığını varsayalım.
Bir ikili ağacın ikili arama ağacı (BST) olup olmadığını kontrol etmek için, bir düğümün sol alt ağacındaki tüm düğümlerin mevcut düğümün değerinden küçük veya ona eşit olduğundan emin olmamız gerekirken, sağ alt ağaçtaki tüm düğümlerin geçerli düğümün değerinden küçük veya ona eşit olduğundan emin olmamız gerekir. düğüm, geçerli düğümün değerinden daha büyüktür. Aşağıda, bir ikili ağacın BST olup olmadığını kontrol eden bir Java işlevi bulunmaktadır. ``` genel boolean isBST(Düğüm kökü) { dönüş isBST(kök, Tamsayı.MIN_VALUE, Tamsayı.MAX_VALUE); } özel boolean isBST(Düğüm düğümü, int min, int max) { if (düğüm == null) { true döndür; } if (node.data < min || node.data > max) { false döndürür; } return isBST(node.left, min, node.data - 1) && isBST(node.right, node.data + 1, max); } ``` `isBST` işlevi ikili ağacın kök düğümünü alır ve başlangıç parametreleri olarak mümkün olan minimum ve maksimum tamsayı değerleri ile özel `isBST` işlevini çağırır. "isBST" işlevi, düğümün boş olup olmadığını kontrol eder, bu durumda doğru döndürür. Aksi takdirde, düğümün değerinin verilen minimum ve maksimum aralığında olup olmadığını kontrol eder. Değilse, düğüm BST özelliğini ihlal ettiğinden false döndürür. Değer verilen aralık içindeyse, sol ve sağ alt ağaçları güncellenmiş minimum ve maksimum değerlerle yinelemeli olarak kontrol eder. Her iki alt ağaç da true değerini döndürürse, işlev true değerini döndürür.