江西师范大学865(863)2018年算法与程序设计题第三题答案
3、设二叉树的存储定义同上一题。设计一个算法,判断一个给定的二叉树是否为二叉排序树,设此二叉树中结点的数据值互不相同。
int predt = -300; //predt小于树中的任何值,predt始终记录着当前所访问结点的前驱的值
int judBST(BTNode *bt)
{
int b1, b2;
if (bt == NULL) //空树是二叉排序树
{
return 1;
}
else
{
b1 = judBST(bt->lchild); //递归地判断左子树是否是二叉排序树
if (b1 == 0 || predt > bt->key) //左子树不是二叉排序树或者predt大于当前根结点值,
//则该树不是二叉排序树
return 0;
predt = bt->key; //将要访问右子树根的时候,predt记录下当前结点根结点的值
b2 = judBST(bt->rchild); //递归地判断右子树是否为二叉排序树
return b2;
}
}
23江西师范大学计算机考研交流q
662791534
更多答案和资料欢迎加q交流
标签:结点,真题,865,二叉,bt,江西师范大学,predt,排序 From: https://www.cnblogs.com/lishizhendepi/p/16654883.html