四则运算表达式的计算堆栈结构(C代码)

简介: 四则运算表达式的计算堆栈结构(C代码)


四则运算表达式的计算

一、堆栈如何实现

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

在这里插入图片描述

2188041a99a8d23f10461ad05dcbca9.jpg


思考一下我们应该使用什么数据类型来实现堆栈这种数据结构哪?

不用怀疑肯定是数组了,我们可以预先设定一个合理大小的某个数据类型数组来存放我们需要的某一类数据。

例如:

用浮点型数组去存放操作数,用字符型数组存放操作符,如下所示:ab39696198a96a662439a8686b2a5ae.jpg

OPS是运算符栈,里面存放着各种待进行的运算。

OVS是操作值栈,里面存放着各种待操作的数值。topp和topv分别是这两个栈的栈顶元素(后续编代码对栈顶元素的处理挺重要的)。


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

一个表达式:

A+B*C-D/E;

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

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

这时候肯定是字符了。

我使用的方法主要是循环加多条件分支判断语句。

后续会出一个这个小项目的专栏,会讲解的很清楚的,希望得到大家的支持。

相关文章
|
19天前
|
C语言
c语言编程练习题:7-16 计算符号函数的值
请编写程序计算该函数对任一输入整数的值。
60 0
|
9月前
|
存储 Unix 编译器
初始C语言(6)——详细讲解表达式求值以及其易错点
初始C语言(6)——详细讲解表达式求值以及其易错点
106 0
|
19天前
|
算法 安全 Java
【算法训练-栈 一】【结构特性】有效的括号、最小栈(包含Min函数的栈)
【算法训练-栈 一】【结构特性】有效的括号、最小栈(包含Min函数的栈)
38 0
|
19天前
|
编译器 C++ 索引
C learning_13 操作符前篇(条件操作符、 逗号表达式、 下标引用、函数调用和结构成员、 表达式求值)
C learning_13 操作符前篇(条件操作符、 逗号表达式、 下标引用、函数调用和结构成员、 表达式求值)
|
9月前
|
C++
C++第3~4章:运算\程序流程结构
C++第3~4章:运算\程序流程结构
48 0
|
算法
表达式转换-中缀转后缀表达式后计算-数据结构与算法
表达式转换-中缀转后缀表达式后计算-数据结构与算法
340 0
表达式转换-中缀转后缀表达式后计算-数据结构与算法
|
12月前
|
C语言 索引
C语言——操作符(下)逗号表达式、下标引用、函数调用、和结构成员、表达式求值
C语言——操作符(下)逗号表达式、下标引用、函数调用、和结构成员、表达式求值
|
存储
educoder数据结构 计算表达式 第2关:栈的应用 - 计算后缀表达式
educoder数据结构 计算表达式 第2关:栈的应用 - 计算后缀表达式
212 0
|
Java
中缀转后缀表达式,带括号的后缀表达式综合计算器,Java栈数据结构实现
中缀转后缀表达式,带括号的后缀表达式综合计算器,Java栈数据结构实现
322 0