学校网站建设项目可行性分析报告,福清seo,搜索域名,网页布局代码后缀表达式又称为逆波兰表达式
一#xff0c;中缀表达式如何转后缀表达式
假定给出以下中缀表达式
132*2-1#xff1b;
要将该表达式转为后缀表达式#xff0c;我们要按照一定的规则去走#xff0c;并且用到栈。
先来看规则中缀转后缀的规则#xff1a;
前提#x…后缀表达式又称为逆波兰表达式
一中缀表达式如何转后缀表达式
假定给出以下中缀表达式
132*2-1
要将该表达式转为后缀表达式我们要按照一定的规则去走并且用到栈。
先来看规则中缀转后缀的规则
前提我们将上述表达式中的数字称为操作数运算符号称为操作符。
先不考虑有括号的情况
遇到操作数就输出遇到操作符 如果栈为空就入栈。 如果栈不为空就与栈顶的元素进行比较如果比栈顶的操作符优先级高得话就入栈。 如果比栈顶操作符优先级低(或相等)就出栈顶的操作符然后该操作符入栈。中缀表达式走完之后再将栈中的元素取出。
根据上述规则对表达式转化的过程如下 我们再来看中缀表达式里有括号的情况
12(6-2)*2 总结遇到左括号时左括号入栈在遇到右括号之前遇到的操作符都依次入栈遇到右括号的时候依次再出栈顶元素直到出到左括号但是括号不作为输出进行输出。
二后缀表达式的运算法则
我们就以上面第二组的测试为例得到其后缀表达式的结果为1 2 6 2 - 2 * 将后缀表达式看作在一个栈中。
规则
遇到操作数继续向后走遇到操作符就将该操作符出栈再取两次栈顶元素依据该操作符进行运算。运算的结果再入栈
过程如下图 逻辑其实还是并不是那么难的但是要用代码写出来的话还是有一定难度的这里不建议使用C语言去写。
下面是两道力扣上的练习题目
150.逆波兰表达式求值中等
224.基本计算器困难