简易计算器实现

Posted solvit

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了简易计算器实现相关的知识,希望对你有一定的参考价值。

中缀表达式转后缀表达式

思路:维护一个队列和一个栈。然后按下面过程进行处理:

①、当队列元素为数字时

 ·直接保存到队列

②、当队列元素为加减时

 ·判断栈顶的运算优先级,由于+-的优先级小于等于所有运算符

 ·所以循环取出栈顶的运算符并入队列

 ·直到遇到栈为空、遇到左括号时才停止,最后再将当前+-入栈

③、当队列元素为乘除时

 ·判断栈顶的运算优先级,由于*/的优先级只小于等于*/

 ·所以循环判断栈顶运算符,如果栈顶运算符是*/,则取出并入队

 ·直到遇到栈为空、遇到左括号、遇到+-时才停止,最后再将当前*/入栈

④、当前队列元素为左括号时

 ·直接入栈

⑥、当前队列元素为右括号时

 ·循环将栈顶运算符出栈并入队列

 ·直到遇到左括号停止,并将左括号出栈弃掉.

⑦、当队列元素判断结束后

 ·判断栈是否为空,如果不为空,则将栈存储的运算符出栈并入队列


 后缀表达式计算

通过逆波兰表达式计算后缀表达式,思路如下

[注]:波兰式是在通常的表达式中,二元运算符总是置于与之相关的两个运算对象之前,所以,这种表示法也称为前缀表达式。

①、遇到数字时

 ·入栈

②、遇到运算符时

 ·取出栈顶的两个数,然后进行计算(有除法时,需要判断除数是否为0)

 ·计算完成后,再将结果入栈

③、当后缀表达式队列对空时

 ·表示遍历结束,此时栈中若只剩下唯一数字,则算出了结果答案.


 参考

以上是关于简易计算器实现的主要内容,如果未能解决你的问题,请参考以下文章

C++.实现简易的四则运算计算器

C++.实现简易的四则运算计算器

Java简易计算器实现

前端 JavaScript 实现一个简易计算器

使用HTML+CSS+javascript实现简易计算器

创建类来实现简易计算器功能