zoukankan      html  css  js  c++  java
  • 计算后缀表达式的过程(C#)

      计算后缀表达式的过程是一个很好玩的过程,而且很简单哦!这里呢,有个计算的技巧,就是:遇到数字直接入栈,遇到运算符就计算!

      后缀表达式也叫逆波兰表达式,求值过程可以用到栈来辅助存储;

      假定待求值的后缀表达式为:12  4  +  13  -  6  2  *  +  =  

      求计算出最终结果:

    (1)首先我们看到在第一个运算符之前呢,有两个数字,那么我们就先把它放入栈中:

    :我们可以看到,下标是从下方开始读的,一定要注意哦,不要弄反了!!!

     

    (2)读到“+”,则弹出12和4,执行相加,12+4,=16,并把16放进栈中:(先弹12,再弹4,顺序不能弄错了!!

     



    (3)读到数字“13”,则直接把13放入栈内:

    (4)读到运算符“-”,则弹出16和13,执行相减,那么16-13=3,并把3放入到栈中:

     

    :在这里我们可以看到,如果我们把弹出的顺序弄反了,那么得到的数字就会完全不同,那后面的结算也会完全不一样,所以,弹出的顺序不能弄反了!!!

    (5)读到数字“6”,直接入栈:

     

    (6)读到数字“2”,直接入栈:

    (7)读到运算符“*”,弹出6和2,执行相乘,6*2=12,并把12放入到栈中:

    (8)读到运算符“+”,则弹出3和12,执行相加,3+12=15,并把15放入栈中:

    (9)到了这里,我们已经把后缀表达式都已经执行了一遍,那么得到的最后结果为15,故:

      12  4  +  13  -  6  2  *  +  =  15

    这就是运算过程,是不是很简单!!!

                                                                      END 

  • 相关阅读:
    JS事件学习笔记(思维导图)
    [logstash-input-file]插件使用详解
    echarts折线图,纵坐标数值显示不准确的问题解决
    IDEA 创建maven jar、war、 pom项目
    Lombok介绍、使用方法和总结
    Springboot2.0访问Redis集群
    springboot2.x 整合redis集群的几种方式
    SpringBoot 2.x 使用Redis作为项目数据缓存
    Springboot2.x使用redis作为缓存
    SpringBoot中application.yml基本配置详情
  • 原文地址:https://www.cnblogs.com/finalanddistance/p/6999528.html
Copyright © 2011-2022 走看看