表达式求值中缀表达式转换为后缀表达式,并求值,(C语言)

来源:学生作业帮助网 编辑:作业帮 时间:2024/04/28 03:37:48

表达式求值中缀表达式转换为后缀表达式,并求值,(C语言)
表达式求值
中缀表达式转换为后缀表达式,并求值,(C语言)

表达式求值中缀表达式转换为后缀表达式,并求值,(C语言)
从算法来说,要考虑中缀的运算符优先级,括号等,可以使用简单语法制导翻译,去看编译原理书吧,从数据结构来说,可以使用二元树和栈.使用二元树就是先建立表达式的树,然后后根遍历即可.难点在建立树.
使用栈的算法也很多,说个好想的.假设表达式的字符来自输入流in,建立栈A存放运算符,B存放结果,从in读入一个操作数压进B,读入一个运算符压进A,如此反复.
1.读入一个元素e
2.如果e是操作数或者(,压入B,跳转到1
3.如果e是运算符(不包含括号),跳转到3.1
4.如果e是),跳转到4.1
5.如果e是EOF,即输入流结束,反复弹出A栈顶压入B,直到A为空,算法结束,B从栈底到栈顶的符号即为后缀表达式(需要把B翻个个儿^_^)
3.1.判断A的栈定符号t,如果t不为(,且优先级大于等于e,则弹出t压入B,跳转到4,如果t为空,即栈中为空,或其他情况直接把e压入A,跳转到1
4.1.弹出A的栈顶压入到B,如此反复直到弹出的符号为(,(和)不要压入B,跳转到1
这是我临时想的,可能还有bug,或描述不清的地方,如果上网搜的话应该有很多源代码的,如果学过编译原理的话还可以有更好的算法,这个算法没考虑容错性.

表达式求值中缀表达式转换为后缀表达式,并求值,(C语言) 求中缀表达式转换为后缀表达式程序 中缀表达式3 + 4/(25 -(6+15))* 8转换为后缀表达式 用堆栈实现将中缀表达式转化为后缀表达式 PASCAL 中 前缀表达式与中缀表达式间,以及后缀表达式与中缀表达式间如何实现转换?就是用程序求出 前缀表达式的值,中缀表达式的值以及后缀表达式的值 后缀表达式求值 c++ 后缀表达式求值算法 前缀、中缀、后缀表达式是怎样的? ‘中缀表达式’‘和后缀表达式’的英文是什么? 已知中缀表达式,求其后缀表达式,请举一例子说明, 中缀表达式A*B*C,后缀表达式是多少.初学者, 已知二叉树的前缀表达式为ABCDE,中缀表达式为BDCEA,后缀表达式怎么求出来?有何方法? 算术表达式能实现前缀后缀和中缀的表达是求值设计表达式的存储结构能求出结果 求《数据结构》课程设计(题目:算术表达式求值)系统应具备的功能:(1)设计算术表达式的存储结构(2)实现前缀表达式、中缀表达式和后缀表达式的求值 (3)输出求值结果希望 把中缀表达式转换为后缀表达式的算法我需要用html和javascript实现一个科学计算器的全部功能包括三角函数等常用函数,现在需要有把中缀表达式转换为后缀表达式的方法,希望有具体的解释, 数据结构 前缀表达式 中缀表达式 后缀表达式各是什么啊?怎么相互转化呢? 表达式a*(b+C)-d的后缀表达式什么?什么叫中缀和后缀? 前缀、中缀、后缀表达式是怎样的?如题