您的位置:首页 > 其它

Dijkstra双栈算数表达式求值算法的过程与分析

2017-10-15 17:01 267 查看

过程

将操作数压入操作数栈;

将运算符压入运算符栈;

忽略左括号;

在遇到右括号时,弹出一个运算符,弹出所需数量的操作数,并将运算符和操作

数的运算结果压入操作数栈。

举例分析

计算(1+((2+3)*(4*5)))

ops—运算符栈

vals—操作数栈

依次读取输入的字符压入栈中



遇到“)”,进行弹栈操作



计算:v=2+3=5;

将运算符和操作数的运算结果压入操作数栈



继续读取进行压栈操作



遇到“)”,进行弹栈操作



计算:v=4*5=20;

将运算符和操作数的运算结果压入操作数栈



遇到“)”,进行弹栈操作



计算:v=5*20=100;

将运算符和操作数的运算结果压入操作数栈



遇到“)”,进行弹栈操作



计算:1+100=101;

将运算符和操作数的运算结果压入操作数栈

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  dijkstra 算法