判断一个数组是不是二叉搜索树的后序遍历

来源:互联网 发布:网络购物纠纷案例 编辑:程序博客网 时间:2024/06/05 05:05

题目:给定一个数组判断该数组是不是一个二叉搜索树的后序遍历结果
解题:后序遍历的最后一个数为该树的根,且二叉搜索树有个特点,就是左结点的数都比根结点小,右结点的数都比根结点大,根据此特性就可以判断数组是否是二叉搜索树的后序遍历。
代码如下:
//判断一个数组是不是二叉搜索树的后序遍历
bool VerifySequenceOfBST(int sequence[],int length)
{

if (length<=0||sequence==NULL){    return false;}int root = length - 1;int left_root = 0;for (int i = 0; i < length;i++){    if (sequence[i]>sequence[root])    {        left_root = i;        break;    }}for (int j = left_root; j < length;j++){    if (sequence[j]<sequence[root])    {        return false;        break;    }}bool left = true;bool right = true;if (left_root>0){    left = VerifySequenceOfBST(sequence, left_root);}if (left_root<length - 1){    right = VerifySequenceOfBST(sequence, length - left_root - 1);}return left&&right;

}

阅读全文
0 0
原创粉丝点击