中缀式构造后缀式
2008-10-20 13:33
197 查看
一.基础知识
中缀表达式到后缀表达式的转换
要把表达式从中缀表达式的形式转换成用后缀表示法表示的等价表达式,必须了解操作符的优先级和结合性。优先级或者说操作符的强度决定求值顺序;优先级高的操作符比优先级低的操作符先求值。如果所有操作符优先级一样,那么求值顺序就取决于它们的结合性。操作符的结合性定义了相同优先级操作符组合的顺序(从右至左或从左至右)。
转换过程包括用下面的算法读入中缀表达式的操作数、操作符和括号:
设立一个栈,存放运算符,首先栈为空,编译程序从左到右扫描中缀表达式,若遇到操作数,直接输出,并输出一个空格作为两个操作数的分隔符;若遇到运算符,则必须与栈顶比较,运算符级别比栈顶级别高则进栈,否则退出栈顶元素并输出,然后输出一个空格作分隔符;若遇到左括号,进栈;若遇到右括号,则一直退栈输出,直到退到左括号止。当栈变成空时,输出的结果即为后缀表达式。
中缀表达式到后缀表达式的转换
要把表达式从中缀表达式的形式转换成用后缀表示法表示的等价表达式,必须了解操作符的优先级和结合性。优先级或者说操作符的强度决定求值顺序;优先级高的操作符比优先级低的操作符先求值。如果所有操作符优先级一样,那么求值顺序就取决于它们的结合性。操作符的结合性定义了相同优先级操作符组合的顺序(从右至左或从左至右)。
转换过程包括用下面的算法读入中缀表达式的操作数、操作符和括号:
设立一个栈,存放运算符,首先栈为空,编译程序从左到右扫描中缀表达式,若遇到操作数,直接输出,并输出一个空格作为两个操作数的分隔符;若遇到运算符,则必须与栈顶比较,运算符级别比栈顶级别高则进栈,否则退出栈顶元素并输出,然后输出一个空格作分隔符;若遇到左括号,进栈;若遇到右括号,则一直退栈输出,直到退到左括号止。当栈变成空时,输出的结果即为后缀表达式。
相关文章推荐
- [转]手工转换中缀式与前、后缀式
- 后缀式中中缀式
- 中缀式转换为后缀式(逆波兰式)方法
- 手工转换中缀式与前、后缀式(转)
- 后缀式中缀式前缀式
- NYOJ-35-表达式求值(中缀式转后缀式 逆波兰表达式)
- nyoj 1272 表达式求值(中缀式转后缀式)
- 中缀式转换为后缀式(逆波兰式)方法
- 算法题:四则运算(中缀式到后缀式的转换,值得思考的逆波兰式)
- 由中缀式转化为后缀式
- 如何将中缀式转化成前缀式和后缀式(波兰和逆波兰)(适合考试使用的简单办法)
- 中缀式变后缀式
- 数据结构实验之栈二:一般算术表达式转换成前缀式,中缀式,后缀式
- 中缀式 前缀式 后缀式 转换
- 手工转换中缀式与前、后缀式
- 【精华版】前缀式、中缀式、后缀式
- NYOJ467 中缀式变后缀式 【栈】
- 用二叉树实现表达式中缀式变后缀式并求值
- 如何将中缀式转化成前缀式和后缀式(波兰和逆波兰)结合二叉树(适合数据结构方面的理解)
- nyoj-409 郁闷的C小加(三) (表达式求值,中缀式转前缀式,中缀式转后缀式)