栈的应用之中缀表达式到后缀表达式的转化

中缀表达式是我们的日常计算中常用的表达式,它更加符合人类的思维方式,诸如a+b。
后缀表达式是计算机中较为常见的用于计算的表达式,诸如ab+。
相应的还有前缀表达式

这里主要介绍中缀表达式转后缀表达式时栈的应用:
首先需要我们准备一个栈和一个队列。
遍历中缀表达式的过程中,如果遇到的元素是数字,我们就把它放入队列中,如果是符号且是第一次遇到符号的情况下,我们就把该符号压入栈中,如果不是第一次遇到符号的情况下,需要先判断一下如果当前符号的优先级比栈顶元素的优先级高(括号的优先级最高),则把当前符号压如栈中,如果当前符号的优先级比栈顶元素的优先级低的情况下, 则需要将栈顶元素放入到队列中,然后判断如果当前符号的优先级小于等于此刻栈中最顶端的元素的优先级,则栈中的元素不需要弹出,则当前元素加入队列即可。如果遇到左括号,则压入栈中,如果遇到右括号,则需要一直弹出元素,直到遇到左括号。最后栈变为了空栈,而从队列的头部依次迭代出的元素就是我们的后缀表达式

猜你喜欢

转载自blog.csdn.net/m0_37884977/article/details/80484187