文章
394
粉丝
0
获赞
0
访问
84.3k
1):利用递归如果每一个节点都比左子树的最大值大并且都比右子树的最小值小,那么以这个节点为根的树就是二叉搜索树,如果每一个非叶子结点都满足该条件那么这颗树就是二叉搜索树;
2):
bool IS_TrueTree(SqBiTree*root,int i,int maxnum,int minnum){
if(root->SqBiTNode[i]==NULL||root->SqBiTNode[i]==-1)return true;//如果搜索到叶子结点或者是NULL就返回true
if(root->SqBiTNode[i]>maxnum&&root->SqBiTNode[i]<minnum)return false;//如果当前节点不在[minnum,maxnum]内则返回false
bool leftflag=IS_TrueTree(root,2*i+1,root->SqBiTNode[i],minnum);//递归判断左子树
bool rightflag=IS_TrueTree(root,2*i+2,maxnum,root->SqBiTNode[i]);//递归判断右子树
...
登录后发布评论
暂无评论,来抢沙发