判断树是否为二叉搜索树,主要利用搜索树的中序遍历是递增的这一性质
#include <iostream>
#include <vector>
using namespace std;
//建树以及判断是不是二叉树
//根据前序和中序 建树
struct treeNode
{
int value;
treeNode* left;
treeNode*right;
};
//vector<int> ivec;
void PrintfTreeInOrder(treeNode*head)
{
if(head!=NULL)
{
PrintfTreeInOrder(head->left);
cout<<head->value<<" ";
PrintfTreeInOrder(head->right);
}
// ivec.push_back(head->value);
}
treeNode* buildTreeCore(int *inOrderStart,int*inOrderEnd,int*preOrderStart,int *preOrderEnd)
{ int length=preOrderEnd-preOrderStart+1;
treeNode* root=new treeNode;
root->value=preOrderStart[0];
root->lef