【学习点滴-数据结构-二叉树】序列是否是二叉查找树的后序遍历结果
2012-06-01 15:26
381 查看
#include <stdio.h> #include <stdlib.h> bool isSequence(int *array, int start,int end) { if(start > end ){ return false; } if(start == end){ return true; } int root = array[end-1]; int i = start; while( array[i] < root && i < end-1){//第一个大于根的数的位置position,为右子树的开始 i++; } int position = i; while( i<end-1) { if(array[i] < root) { //如果在position后还有小于根的数,则不是二叉查找树 return false; } i++; } //若左右子树有一个不为二叉查找树,则当前序列不满足条件 bool left = true; left = isSequence(array,start,position); bool right = true; right = isSequence(array,position,end-1); return (left && right); } main(){ int a[7] = {5,7,6,9,11,10,8}; int b[] = {7,4,6,5}; printf("%d\n",isSequence(a,0,6)); printf("%d\n",isSequence(b,0,3)); system("pause"); return 0; }
相关文章推荐
- 【学习点滴-数据结构-二叉树】整数序列放入二叉树中
- 数据结构:题目(3)测试一个数组序列是否是二叉树的前序遍历或者后序遍历结果
- 【学习点滴-数据结构-二叉树】二叉查找树源码实现
- 【学习点滴-数据结构-二叉树】二叉查找树转换成双链表
- 【学习点滴-数据结构-二叉树】判断二叉树是否是平衡二叉树
- 【学习点滴-数据结构-二叉树】二叉树转换为其镜像。
- 判断二叉树的后序遍历序列是否合法
- 《剑指offer》:[24]判断一个序列是否为二叉树的后序遍历序列
- 【学习点滴-数据结构-二叉树】和为某一值的二叉树路径~
- 【面试题】剑指offer24--判断一个序列是否为二叉树的后序遍历
- 【学习点滴-数据结构-二叉树】二叉树中找大于等于(min+max)/2的节点
- 数据结构学习笔记-二叉树的前、中、后序遍历,递归、非递归方式
- 【学习点滴-数据结构-二叉树】求二叉树中某两个节点的最近公共祖先
- 【学习点滴 -数据结构-二叉树】 二叉树的遍历(全)
- 数据结构与算法学习之二叉树的遍历:已知先序、中序、后序序列三者中的两种求另外一种遍历的算法
- 判断是否是二叉查找树的后序遍历结果
- 【学习点滴-数据结构-二叉树】求二叉树两个节点之间的最大距离
- 【C语言】【数据结构】菜鸟学习日志(四) 用二叉树实现非递归排序
- 判断一个数据序列是否是BST后序遍历的结果