江西师范大学865数据结构与程序设计真题答案

江西师范大学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交流

 

posted @ 2022-09-04 12:46  李时珍的皮ddd  阅读(546)  评论(0)    收藏  举报