找工作笔试的时候通常会遇到给定一个一般的表达式,让你求他的前、中、后缀表达式,根据其定义求表达式往往不直观,不好理解,下面给出一个利用二叉树来求解前、中、后表达式的方法。
例如给定的表示式为:a*(b+c)-d
1、根据表达式运算步骤画出二叉树,首先是(b+c)
2、接着是a*(b+c)
3、最后是a*(b+c)-d
下面来讲述怎么构造前、中、后表达式,其对应关系如下:
(1)前序遍历(根—左—右)——前缀表达式:-*a+bcd
(2)中序遍历(左—根—右)——中缀表达式:a*b+c-d
(3)后序遍历(左—右—根)——后缀表达式:abc+*d-
PS:如何分析左右根?首先将整个二叉树分为左右根,然后将左子树也看成整个的一棵树,继续分为左右根,这个分层次找出左右根~~