表达式求值(C语言)
发布时间
阅读量:
阅读量
代码所能实现的功能如下:
- 可对任意正整数进行运算
- 仅支持 + - * / () 这些基本运算符
我所编写的程序,
目的是让其能够处理任意正整数的表达式计算,因此采用了两个栈结构,分别用于存储运算符和操作数;
注释:若只使用一个栈,我认为只能实现0到9之间的简单表达式计算
由于同时使用了两个栈(分别用于存储不同类别的数据,一个用于字符,另一个用于数值),因此需要分别编写初始化、入栈、出栈以及获取栈顶元素的相关函数
接下来是关键部分,即如何编写表达式处理代码,以应对运算优先级的问题
补充说明:在代码中出现的以下定义:
- TR:表示运算符,即 + - * / ()
- ND:表示操作数,即整型数值
另外提醒一点,在控制台输入表达式时,若包含括号(),必须使用英文输入法输入,否则可能会导致程序运行异常,甚至让人感到崩溃
#include<iostream>
using namespace std;
#define starksize 100
typedef struct{
char *base;
char *top;
int length ;
}StarkTR; //寄存运算符
typedef struct{
int *b
全部评论 (0)
还没有任何评论哟~
