注册 登录
编程论坛 数据结构与算法

求大神指点 感激不尽

世界模型 发布于 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
a66992012-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