回 帖 发 新 帖 刷新版面

主题:求助 算法

请编写一个递归算法Degth ,判定给定二叉树Bt是否是排序二叉树,编程要求:
BTnode 定义的二叉链结构如下:
typedef struct BTnode {
        TelemType  data;
   Struct  Btnode  *rchild,
                   *lchild;
  }
  主程序定义:
  Int Degth (BTnode *t)
  递归程序建议:
  Int subdegr(BTnode *t,leftB,rightB)
  编程建议:leftB限定取值下限,rightB限定取值上限。

回复列表 (共2个回复)

沙发

Int subdegr(BTnode *t,leftB,rightB)
{
     if(t==NULL)
           return TRUE;
     if(t->data<leftB || t->data>rightB)
           return FALSE;
     return subdegr(t->left,leftB,t->data) && subdegr(t->right,t->data,rightB);
}

Int Degth (BTnode *t)
{
    return subdegr(t,-(INFINITY),(INFINITY));
}

板凳

二叉排序树的中序遍历序列递增有序的,可以此判断
注意 空树是,单根树也是

我来回复

您尚未登录,请登录后再回复。点此登录或注册