二叉树的操作(二)

时间:2022-01-31 17:31:01

紧接着上一篇总结,关于二叉树的遍历(递归,非递归)参考博客:二叉树的创建 先序 中序 后续 递归和非递归遍历
判断树是不是一个二叉排序树:

bool isBST(Tree& root)
{
if(!root)
{
return true;
}
if(root->left && root->right)
{
if((root->data < root->right->data) && (root->data > root->left->data))
{
return isBST(root->left)&&isBST(root->right);
}
else
{
return false;
}
}
else if(root->left && !root->right)
{
if(root->left->data < root->data)
{
return isBST(root->left);
}
else
{
return false;
}
}
else if(root->right && !root->left)
{
if(root->data < root->right->data)
{
return isBST(root->right);
}
else
{
return false;
}
}
else
{
return true;
}
}