设计判断一棵二叉树是否为二叉搜索树的算法
实在没什么思路,只是感觉,用递归会好点,求高手
2011-01-04 10:56

程序代码:bool isBST(struct tree *root)
{
if (root == NULL)
return true;
if (isBST(root->left) && isBST(root->right))
return (root->left == NULL ? true : (root->left->v < root->v))
&& (root->right == NULL ? true : (root->v < root->right->v));
}
2011-01-04 12:00
2011-01-04 12:22

程序代码:bool isBST(struct tree *root)
{
static int preV = INT_MIN;
if (root == NULL)
return true;
isBST(root->left);
if (root->v > preV)
preV = root->v;
else
return false;
isBST(root->right);
}
2011-01-04 12:46
2011-01-04 12:48
2011-01-04 12:50
2011-01-04 12:53

程序代码:bool isBST(struct tree *root)
{
static int preV = INT_MIN;
if (root == NULL)
return true;
if (!isBST(root->left))
return false;
if (root->v > preV)
preV = root->v;
else
return false;
isBST(root->right);
}
2011-01-04 13:08
2011-01-04 14:13