标签:
1 bool VerifySquenceOfBST(int sequence[],int length) 2 3 { 4 5 if(sequence==NULL||length<=0) 6 7 return false; 8 9 int root=sequence[length-1]; 10 11 12 13 //在二叉搜索树中左子树的结点小于根结点 14 15 int i=0; 16 17 for(;i<length-1;++i) 18 19 { 20 21 if(sequence[i]>root) 22 23 break; 24 25 } 26 27 28 29 //在二叉搜索树中右子树的结点大于根结点 30 31 int j=i; 32 33 for(;j<length-1;++j) 34 35 { 36 37 if(sequence[j]<root) 38 39 return false; 40 41 } 42 43 44 45 //判断左子树是不是二叉搜索树 46 47 bool left=true; 48 49 if(i>0) 50 51 left=VerifySquenceOfBST(sequence,i); 52 53 54 55 //判断右子树是不是二叉搜索树 56 57 bool right=true; 58 59 if(i<length-1) 60 61 right=VerifySequenceOfBST(sequence+i,length-i-1); 62 63 64 65 return (left&&right); 66 67 }
标签:
原文地址:http://www.cnblogs.com/wxdjss/p/5451955.html