当前位置 博文首页 > 通信汪的美好生活的博客:四则运算表达式的计算堆栈结构(C代码

    通信汪的美好生活的博客:四则运算表达式的计算堆栈结构(C代码

    作者:[db:作者] 时间:2021-07-11 16:13

    四则运算表达式的计算

    一、堆栈如何实现

    堆和栈都是内存里面的一块存储区域。堆是还尚未使用的内存区域,栈是我们可以存放一些变量值的地方,而且栈的数据存放顺序是从下向上生长的,先入后出,后入先出。
    在这里插入图片描述

    思考一下我们应该使用什么数据类型来实现堆栈这种数据结构哪?
    不用怀疑肯定是数组了,我们可以预先设定一个合理大小的某个数据类型数组来存放我们需要的某一类数据。
    例如:
    用浮点型数组去存放操作数,用字符型数组存放操作符,如下所示:
    在这里插入图片描述
    OPS是运算符栈,里面存放着各种待进行的运算。
    OVS是操作值栈,里面存放着各种待操作的数值。topp和topv分别是这两个栈的栈顶元素(后续编代码对栈顶元素的处理挺重要的)。

    二、计算机如何得到四则运算表达式

    一个表达式:

    A+B*C-D/E;
    

    这里面的字母都是数字,操作符都是字符类型的。但是当我们用c语言实现四则混合运算时,是用scanf()来实现表达式的输入的即:

    “A+B*C-D/E;”//比如为:"33.37+2*5-9.0/10;"
    

    这时候肯定是字符了。
    我使用的方法主要是循环加多条件分支判断语句。
    后续会出一个这个小项目的专栏,会讲解的很清楚的,希望得到大家的支持。

    cs