编程论坛
注册
登录
编程论坛
→
数据结构与算法
求大神指点 感激不尽
世界模型
发布于 2012-11-01 12:10, 732 次点击
1、30 20 10 25 4个元素组成的二叉搜索树有几种不同的形态
2、
只有本站会员才能查看附件,请
登录
只有本站会员才能查看附件,请
登录
10 回复
#2
世界模型
2012-11-01 17:03
someone?
#3
寒风中的细雨
2012-11-01 17:25
4个结点构成的二叉树
只有4层 和 3层两种情况
根据二叉排序树的特性 30 20 10 25 确定树的形状后 数据的位置就是一定的 所以只需要计算4个结点可以构成的多少个不同形状的二叉树
#4
寒风中的细雨
2012-11-01 17:31
随便写个式子 4 + 5 * (6 + 7)
当转为二叉树的形式表示的时候 是不用表示括号的
+
/ \
4 *
/ \
+ 5
/ \
6 7
#5
寒风中的细雨
2012-11-01 17:33
二叉树 后续 遍历的结果是: 4 6 7 + 5 * + 这个也是逆波兰表达式(后缀表达式)
[
本帖最后由 寒风中的细雨 于 2012-11-1 17:37 编辑
]
#6
寒风中的细雨
2012-11-01 17:40
根据后缀表达式 还原一般的表达式: 遇到运算符 取运算符号后面连个数做操作 (4+((6+7)*5))
现在是处理什么地方该加括号 什么地方不该加 可以比较运算符的优先级 先出现的运算符(+) 比后出现的运算符(*) 优先级低时 应该在优先级低的运算符操作的数据之间加上括号
#7
a6699
2012-11-01 17:41
someone?
#8
青春无限
2012-11-01 17:47
学习
#9
寒风中的细雨
2012-11-01 17:49
(3+2) - (5+3)
-
/ \
+ +
/ \ / \
3 2 5 3
#10
世界模型
2012-11-01 18:18
回复 9楼 寒风中的细雨
恩 谢谢斑竹 不过 我还有一点想请教斑竹 如果是任意输入的一个算术表达式 那个运算符优先级的判断 应该怎么处理
#11
寒风中的细雨
2012-11-01 18:47
在这儿就只需要判断去掉括号 和不去掉括号是否等价 等价就去掉括号 如果不等价就需要加上括号
1