二叉搜索树的前序遍历
来源:互联网 发布:中世纪2原版优化第十版 编辑:程序博客网 时间:2024/04/29 18:57
二叉搜索树:空树或者满足下列条件:
- 若左子树不空,则左子树上所有结点的值都小于根节点。
- 若右子树不空,则右子树上所有结点的值都大于根节点。
为了判断一个数组是否为一棵二叉搜索树的前序遍历,主要思想为:因前序遍历第一个遍历的是根节点,则数组第一个数为根节点的值,再基于根节点把整棵树的遍历序列分成左子树和右子树序列,递归的处理这两个子序列。
代码如下:
#include <iostream>#include <vector>using namespace std;bool IsBST(vector<int> a,int l,int r){ if(l>=r) return true; //若树为空树,或者到叶子节点 int i=r; while(i>l&&a[i]>a[l]) --i;//从后开始遍历,找出右子树序列 for(int j=i;j>=l;--j) if(a[j]>a[l]) return false;//若左子树有一个值大于根节点,则返回false. return IsBST(a,l+1,i)&&IsDLR(a,i+1,r);//递归 }bool VerifySquenceOfBST(vector<int> sequence) { if(sequence.empty()) return false; return IsBST(sequence,0,sequence.size()-1);}int main(){ vector<int> vec={8,6,5,7,10,9,11}; cout<<VerifySquenceOfBST(vec)<<endl;}
0 0
- 二叉搜索树的前序遍历
- 判断二叉搜索树的前序遍历序列
- 二叉搜索树的前序遍历序列
- 二叉搜索树的实现和前序遍历
- 二叉搜索树+前序遍历 -> 后序遍历
- 二叉搜索树的后序遍历序列和二叉搜索树的前序遍历序列
- 二叉树和二叉搜索树的前序、中序和后序遍历
- 根据前序遍历判断二叉搜索树
- ZOJ 1700 Falling Leaves 二叉搜索树+前序遍历
- 二叉搜索树的中序 前序 后序遍历JAVA实现
- hdu3999 the order of a tree - BST二叉搜索树的前序遍历
- 【剑指offer】面试题24:二叉搜索树的后续前序遍历序列
- 【BST】根据前序遍历的数组构造搜索二叉树
- 二叉搜索树的前序遍历:hdu 3999 The order of a Tree
- 判断数组是不是二叉搜索树的前序遍历结果
- java写的二叉搜索树(生成和前序遍历)
- java二叉树的前序遍历
- 算法:二叉树的前序遍历
- C++中的函数重载中为什么不考虑返回值类型?
- Android 图片资源文件夹(hdpi,mdpi,xhdpi,xxhdpi,xxxhdpi)对应的手机分辨率
- cesiumjs学习笔记之一——环境搭建
- 安卓开发定义一个全局的捕获异常,提升客户体验
- 迷宫问题
- 二叉搜索树的前序遍历
- Iserver产品模块划分
- 使用nexus搭建maven私服、手动更新索引
- 网卡数据捕获
- JavaSE教程-04Java中循环语句for,while,do···while-练习2
- 多线程的简单认识(二)
- leetcode485. Max Consecutive Ones
- Codeforces 523C&D C.Name Quest【贪心】、D.Statistics of Recompressing Videos【模拟】
- JAVA异常初级的懵逼之路