pxy071128fzm

假定有前缀表达式++1*2 3 4 请将它转化为中缀表达式。

利用表达式树:

1.从右到左扫面后缀表达式,一次一个符号读入表达式。

2. 如果符号是操作数,那么就建立一个单节点树并将它推入栈中。如果符号是操作符,那么就从栈中弹出两个树T1和T2(T1先弹出)并形成一颗新的树,该树的根就是操作符

3.它的左、右儿子分别是T1和T2(先出的为左子树,后出的为右子树)。然后将指向这棵新树的指针压入栈中。

 

1.从右开始都是操作数 4 3 2 放入栈中

 

 

2. 遇到操作符 *,取栈中两个元素,先出为左,后出为右如下:

 

3.操作数1 放入栈中

 

4.遇到操作符 +,去栈中两个元素,先出为左,后出为右

 

 

5.遇到操作符 + 取两个元素,先出为左,后出为右

 

 

 

 对上面构造的表达式树,按中序遍历如下:

 中缀表达式为:1+2*3+4

相关文章:

  • 2021-10-21
  • 2021-04-18
  • 2021-12-15
  • 2021-12-05
  • 2021-10-30
  • 2021-08-14
  • 2021-06-02
  • 2021-11-23
猜你喜欢
  • 2021-11-24
  • 2021-06-23
  • 2021-10-20
  • 2021-05-29
  • 2021-06-07
相关资源
相似解决方案