【数据结构】【输入一个整数数组,判断该数组是不是某二元查找树的后序遍历的结果】
来源:互联网 发布:ubuntu 16.04 wine1.9 编辑:程序博客网 时间:2024/05/16 01:47
题目来源:北航14级6系数据结构作业题
【问题描述】输入一个整数数组,判断该数组是不是某二元查找树的后序遍历的结果。如果是返回true,否则返回false。
【输入形式】输入任意长度的数组,数字之间空格分开
【输出形式】true 或者 false
【样例输入】输入5 7 6 9 11 10 8
【样例输出】true
【样例说明】由于这一整数序列是如下树的后序遍历结果:
8
/ \
6 10
/ \ / \
5 7 9 11
因此返回true。
【评分标准】暴力求解法不得分。
一开始我是想先利用这个后序遍历去还原一个二叉排序树的,但是发现怎么运行都是true,这里面应该是有问题的
于是在网上发现一个根本不用建立二叉树的做法
根据二叉树的后序遍历的特点我们知道,最后一个是根节点,然后,根节点的左子树分布在遍历输出的前部,其右子树在中间
即: 左子树||右子树||根节点
而且又是二叉排序树,所以只要判断属于左子树里面的元素有没有大于根节点的,属于右子树的元素有没有小于根节点的
算法流程:先从i=0开始,从左往右找到第一个属于右子树的元素,再往右开始进行判断
C代码:
#include <stdio.h>#include <stdlib.h>#define MAXNUM 50int main() { int post[MAXNUM] = {0};//后序遍历 int len_post = 0; int i,j; int rootN; while( (scanf("%d",&post[len_post])) != EOF) { len_post ++; } rootN = post[len_post-1]; for( i = 0; i < len_post; i++) { if( post[i] > rootN) break; } for( j = i; j < len_post; j++) { if( post[j] < rootN ) { printf("false"); break; } } if( j == len_post ) printf("true"); return 0;}
算法是向 yuucyf 借鉴的,感谢他
他的博客链接:http://blog.csdn.net/yuucyf/article/details/6394770
1 0
- 【数据结构】【输入一个整数数组,判断该数组是不是某二元查找树的后序遍历的结果】
- 输入一个整数数组,判断该数组是不是某二元查找树的后序遍历的结果
- java 输入一个整数数组,判断该数组是不是某二元查找树的后序遍历的结果
- 输入一个整数数组,判断该数组是不是某二元查找树的后序遍历的结果
- 输入一个整数数组,判断该数组是不是某二元查找树的后序遍历的结果
- 每天学习一算法系列(9) (输入一个整数数组,判断该数组是不是某二元查找树的后序遍历的结果)
- 判断该数组是不是某二元查找树的后序遍历的结果
- 判断该数组是不是某二元查找树的后序遍历的结果
- 输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果
- 剑指offer_输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果
- java实现输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果
- Java实现:输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。
- 输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果
- 每天一算法(判断该数组是不是某二元查找树的后序遍历的结果)
- 判断某数组是不是某二元查找树的后序遍历的结果
- 判断一个数组是不是二元查找树后序遍历的结果
- 输入一个整数数组,判断该数组是不是某个二叉搜索树的前序遍历结果
- java 输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。
- ubuntu 14.10,如何锁定屏幕?
- Python3中urllib详细使用方法(header,代理,超时,认证,异常处理)
- 欢迎使用CSDN-markdown编辑器
- Android网络优化3--基本方法
- A strange lift
- 【数据结构】【输入一个整数数组,判断该数组是不是某二元查找树的后序遍历的结果】
- 292 Nim Game
- “App Transport Security has blocked a cleartext HTTP (http://) resource load since it is insecure. T
- ubuntu上搭建eclipse下hadoop-2.7.1集群(全分布式)开发环境遇到的几个问题笔记
- 258 Add Digits
- POJ 3250 Bad Hair Day(单调递增栈)
- 104 Maximum Depth of Binary Tree
- 分组背包
- 第一次用博客