注意点:1、二叉搜索树不能通过递归判断,这样只能判断子树是二叉搜索树,不一定整棵树是,应该通过中序遍历判断是否是递增序列。
2、注意最小堆的判断,先判断左右子树(如果不为空),再递归
if(T[id].leftchild!=-1&&T[T[id].leftchild].k2<T[id].k2)
{
//printf("id%d %d %d\n",id,T[T[id].leftchild].k2,T[id].k2);
return 0;
}
if(T[id].rightchild!=-1&&T[T[id].rightchild].k2<T[id].k2)
{
//printf("id%d %d %d\n",id,T[T[id].rightchild].k2,T[id].k2);
return 0;
}
if(!judge_mintree(T[id].leftchild)||!judge_mintree(T[id].rightchild))
{
return 0;
}