zoukankan      html  css  js  c++  java
  • 前缀表达式转中缀表达式

    假定有前缀表达式++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

  • 相关阅读:
    jsp的DAO三层-------------实现登录功能
    JSP前后台交互实现注册、登录功能
    结构化查询语言----SQL基本操作
    HTML5 Web存储
    jQuery 属性和CSS
    jQuery DOM操作
    JS中的函数、BOM和DOM操作
    接口和抽象类
    单例模式
    IP介绍
  • 原文地址:https://www.cnblogs.com/fangzm/p/13945052.html
Copyright © 2011-2022 走看看