逆波兰代码

时间:2021-07-18 14:58:08
【文件属性】:

文件名称:逆波兰代码

文件大小:4KB

文件格式:TXT

更新时间:2021-07-18 14:58:08

java 逆波兰

逆波兰变换算法 (1)建立两个栈,一个S1用来存放操作符+ - * / ( ),另一个S2用来存放生成的逆波兰表达式(本文中为了方便用一个字符串来存放逆波兰表达式),操作符栈遵循越往栈顶操作符优先级越高的原则。 (2)从中缀表达式的最左端开始逐个读取字符X,按一下规则对X进行处理: a:如果X为数字,则直接放入S2 b:如果X为操作符,按以下情况处理: b1— 如果X为’(‘,则直接压入S1 b2— 如果X为’)‘,则将S1中距离栈顶最近的’(‘之间的元素依次弹出放入S2,’(‘直接抛弃 b3— 如果X为’+ - * /‘,若当前S1为空,则直接将X压入S1,否则将X与S1当前栈顶元素比较,若X的优先级大于S1当前栈顶元素优先级,则将X直接压入S1,否则将S1的栈顶元素弹出,放入S2,直到S1栈顶运算符优先级低于(不包括等于)X的优先级,此时再则将X压入S1 (3)步骤(2)结束之后,将栈S1中剩余的元素依次弹出,放入S2。


网友评论