用调度场算法计算表达式的值,javascript实现
最近想试下做微信小程序,刚开始写,想找点东西练手,试下写个计算器的小程序,查了一下,做表达式求值是用的Dijkstra的调度场算法,用两个栈就可以实现,一个输出栈,一个操作符栈,算法描述如下:
依次按顺序读入,
读到数字:直接输出;
读到一般运算符:如果栈顶的运算符优先级不低于该运算符,则输出栈顶运算符并使之出栈,直到栈空或不满足上述条件为止;然后入栈;
读到左括号:直接入栈;
读到右括号:输出栈顶运算符并使之出栈,直到栈顶为左括号为止;令左括号出栈。
当读入完毕时,依次输出并弹出栈顶运算符,直到栈被清空
原创
2021-02-05 09:17:17 ·
107 阅读 ·
0 评论