VB做计算器,求优先级代码,其他函数之类的运算都会,差2*(8+3)这种样子的代码,急求,请各位大虾帮帮忙

来源:百度知道 编辑:UC知道 时间:2024/05/29 12:20:18
开始想用栈但是不会,我的数字按钮是用按钮的数组做的

用两个简单的栈就行了,一个是操作数栈,一个是操作符栈。
扫描被运算的表达式,如果是数就压入操作数栈;如果是操作符就与操作符栈的栈顶元素比较:如果此操作符的优先级比栈顶元素的高,就入栈,否则,就在操作数栈中弹出两个元素与操作符运算,将结果压入操作数栈。
扫描完成后,如果栈中元素不空,就弹出来进行运算,直到空为止。

优先级
其实要解决这个问题,很简单.
不需要你背什么东西.你只需要多用几对括号就可以了。

这个,好像以前在那里看到过算法介绍的,要把运算字符串转换成二叉树然后中序遍历,好像是这样
我的解决办法是处理类Lisp代码,这样简单,哈
比如
(+ 1 (* 2 3))