c++算术表达式求值演示

【问题描述】:表达式计算是实现程序设计语言的基本问题之一,也是栈的应用的一个典型例子。设计一个程序,演示中缀表达式变为后缀表达式并对后缀表达式求值的过程。
【基本要求】:以字符序列的方式从终端输入语法正确的、不含变量的整数表达式。利用中缀表达式变为后缀表达式算法和后缀表达式的求值算法实现对算术四则混合运算表达式的求值,并演示出在求值中运算符栈、操作数栈、输入字符和主要操作的变化过程。
来个例子参考下,要对口的哦。

第1个回答  2012-12-24

代码就不给你贴了,没意思,我举个例子,自己研究下。

将中缀表达式(1+2)*((8-2)/(7-4))变成等价的后缀表达式:

计算上述后缀表达式的值:


自己看下,过程很详细,应该看得明白,代码你照着这个例子转化下就行了,希望对你有帮助。

第2个回答  2012-12-24
数据结构 这本书上不是有吗?

c++算术表达式求值演示
将中缀表达式(1+2)*((8-2)\/(7-4))变成等价的后缀表达式:计算上述后缀表达式的值:自己看下,过程很详细,应该看得明白,代码你照着这个例子转化下就行了,希望对你有帮助。

算数表达式求值c++
2. 运算数只考虑 0-9,这10个简单的数,方便从string中取出来 3. 输入的表达式没有语法错误 【背景知识】 中缀表示法(Infix expression):操作符位于两个操作数中间,算术表达式的常规表示法。只用于二元操作符的情况,而且需要用括号和优先规则排除多义性。(A+B)*C-D\/(E+F) 前缀表示法(Prefix expression):也叫...

...i=(x>100?10:100)的值和完成表达式求值后变量i的值分别是 和。_百...
这句可以换成这样的写法:x=625;if (x>100)i=10 else i=100 这样应该明白了吧 至于最终结果,看图吧。

C++表达求值
老兄,太吝啬了,帮你写程序,大方点嘛(对于一些异常情况这里没有考虑,你自己添加判断吧):include <stdio.h> include <conio.h> include <malloc.h> include <string.h> void main(){ int count = 0;printf("请输入表达式个数: ");scanf("%d", &count);float* presult = (float*)mall...

中缀表达式转后缀表达式并求值(C++链式栈实现)
实现后缀表达式求值函数。该函数同样利用栈,当遇到操作数时直接压栈;遇到运算符时,弹出栈顶两个操作数,进行运算后将结果压栈。循环进行直至表达式结束。通过这种方式,可以有效处理多位整数及负数的中缀表达式运算。使用类模板可以增加代码的复用性。最终,通过链式栈实现了中缀到后缀的转换与后缀表达式的...

c++表达式求值
\/*** 只适合整数的表达式求值 ***\/ \/***其中部分可作修改,表达式也可是输入的***\/ include "iostream.h"const int n0=30;int s1[n0+1]; \/\/操作数栈 char s2[n0+1]; \/\/运算符栈 int t1,t2;int num[4]; \/\/提取表达式中的整数 void calcu() \/\/一次计算 { int x1,x2,x;char ...

(C++) 输入一个由数字、+、-、*、\/及括号组成的自述表达式,求其值。
define STACK_INIT_SIZE 10 \/* 存储空间初始分配量 *\/ define STACKINCREMENT 2 \/* 存储空间分配增量 *\/ typedef float SElemType_f;typedef char SElemType_ch;typedef int Status;include<iostream.h> include<stdlib.h> \/*free()头文件 *\/ define OK 1 define ERROR 0 typedef struct Sq...

C语言:!(x+y)+z-1 && y+z\/2 跪求高手解答 不胜感激。 谢谢!!
x+y)-z-1的值为0。(x+y)-z-1的值为0,则!(x+y)-z-1的值为1。先算z\/2,再算y+z\/2。若y+z\/2的值为0,那么整个表达式的值为0。若左边(x+y)-z-1的结果为1 ,y+z\/2的结果非零值,那么整个表达式的结果为1。其他情况,&&左右两边出现一个零,则整个表达式的结果为0。

(二)用顺序栈实现算术后缀表达式求值
1、算法思想后缀表达式求值步骤:a、循环读出后缀表达式中的每一个字符;b、若是数字,将对应的字符串转换成整数,入栈;c、若是运算符,从栈中弹出2个数,将运算结果再压入栈;d、若... 1、算法思想后缀表达式求值步骤:a、循环读出后缀表达式中的每一个字符;b、若是数字,将对应的字符串转换成整数,入栈;c、若是...

C语言关于表达式求值
这是我以前做的一个表达式求值的程序,要求和实现的功能是一样的:include<stdio.h> include <string.h> include <conio.h> define PLUS 0 define MINUS 1 define POWER 2 define DIVIDE 3 define LEFTP 4 define RIGHP 5 define STARTEND 6 define DIGIT 7 define POINT 8 define NUM 7 defi...

相似回答