四则运算,简单算术题(如:1*2+3/3*4+8)

本文介绍了两种不同复杂度的算术表达式解析算法。一种是简单的算术算法,涉及基本的加减乘除运算;另一种是较为复杂的算术题,包含括号优先级处理。通过使用栈来实现运算符和操作数的存储与处理。

1.简单的算术算法:如:1*2+3/3*4+8

   上面的算术较为简单,没有括号,只是一般的运算,现在唯一要做的就是弄清楚优先级, 在加上数据结构中 栈的辅助就可以实现了

 

   基本算法如下:需要有个两个栈 一个用来存放数据,一个用来存放运算符,如果是数字就放入数据栈,如果为运算符,就需要进行优先级的比较,优先级与当前栈顶的运算符优先级低的话,就压入栈,如果高于栈顶运算符的优先级,就需要计算下符号两旁的数据,得出结果,把结果在放入数据栈,运算符的栈顶符号不变,如运算符低于栈顶的运算符,就需要先将数据栈的末尾两个数进行计算,依次这样最终运算符中的栈的优先级一样,最后直接依次读取数据栈,运算符栈进行由前往后进行计算就可以。

 

2.比较复杂的算术题 1*(2+3)/(3*4+8)

 基本原理与上面一样,依次计算出括号里面的,压入数据栈。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值