代码:
#include <iostream> #include <vector> #include <assert.h> using namespace std; bool verifyBst(int data[],int length){ if(data == NULL || length <=0) return true; int root = data[length - 1]; int i=0; //查找左子树节点和长度 左子树小于根节点 for(;i < length -1 ;i++){ if(data[i] > root) break; } //查找右子树节点和长度 右子树大于根节点 int j=i; for(;j < length-1 ;j ++){ if(data[j] < root ) return false; } //判断左子树是否是二叉树 bool left = true; left = verifyBst(data,i); bool right = true; right = verifyBst(data+i,length - i -1); return left && right ; } int main() { // int data[]={5,7,6,9,11,10,8}; int data[]={7,4,6,5}; cout<< verifyBst(data,sizeof(data) / sizeof(int)); return 0; }
运行结果:
二叉树的后续遍历序列
时间: 2024-10-04 14:53:31