با توجه به یک درخت دودویی، بررسی کنید که آیا درخت جستجوی دودویی است یا خیر. یک تابع جاوا برای انجام آن بنویسید. فرض کنید کلاس Node پیاده سازی شده است.
برای بررسی اینکه آیا یک درخت دودویی، درخت جستجوی دودویی (BST) است، باید اطمینان حاصل کنیم که همه گره های زیر درخت چپ یک گره کمتر یا مساوی مقدار گره فعلی هستند در حالی که همه گره های زیر درخت راست یک گره بزرگتر از مقدار گره فعلی هستند. در زیر یک تابع جاوا آمده است که بررسی می کند آیا یک درخت دودویی BST است یا خیر.

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

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

تابع `isBST` گره ریشه درخت دودویی را می گیرد و تابع خصوصی `isBST` را با حداقل و حداکثر مقادیر صحیح ممکن به عنوان پارامترهای اولیه فراخوانی می کند. تابع `isBST` بررسی می کند که آیا گره تهی است، که در این صورت true را برمی گرداند. در غیر این صورت، بررسی می کند که آیا مقدار گره در محدوده داده شده min و max است یا خیر. اگر نه، false را برمی گرداند زیرا گره ویژگی BST را نقض می کند. اگر مقدار در محدوده داده شده باشد، به صورت بازگشتی زیر درخت های چپ و راست را با مقادیر به روز شده min و max بررسی می کند. اگر هر دو زیر درخت true را برگردانند، تابع true را برمی گرداند.