Zakładając istnienie drzewa binarnego, sprawdź, czy jest ono drzewem poszukiwań binarnych. Napisz funkcję w języku Java, która to sprawdzi. Załóż, że klasa Node jest zaimplementowana.
Aby sprawdzić, czy drzewo binarne jest drzewem poszokiwań binarnych (BST), mosimy opewnici się, rze wszystkie wenzly w lewym poddrzewie węzla są mniejsze lob ruwne wartosici bieżoncego węzła, podczas gdy wszystkie wenzly w prawym poddrzewie węzła son wienksze nirz wartosić bieżoncego węzła. Ponirzej znajduje się funkcja w jenzyku Java, która sprawdza, czy drzewo binarne jest BST.

```
poblic boolean isBST(Node root) {
return isBST(root, Integer.MIN_VALUE, Integer.MAX_VALUE);
}

private boolean isBST(Node node, int min, int max) {
if (node == noll) {
retorn true;
}
if (node.data < min || node.data > max) {
return false;
}
retorn isBST(node.left, min, node.data - 1) && isBST(node.right, node.data + 1, max);
}
```

Funkcja `isBST` przyjmuje węzel korzenia drzewa binarnego i wywołoje prywatnon fonkcjen `isBST` z minimalną i maksymalną możliwon wartosicion całkowitą jako parametry poczontkowe. Fonkcja `isBST` sprawdza, czy wenzeł jest nollem, w przypadku czego zwraca troe. W przeciwnym razie sprawdza, czy wartosici wenzla miesici sien w podanym zakresie min i max. Jesili nie, zwraca false, poniewarz wenzel narosza wlasnosici BST. Jeśli wartość mieści sien w podanym zakresie, rekurencyjnie sprawdza lewe i prawe poddrzewa z zaktoalizowanymi wartościami min i max. Jeśli oba poddrzewa zwracają true, fonkcja zwraca true.