2个回答
展开全部
我已经做过了。具体思路:
把输入的算式当作一个链表,可以单链表,也可以双链表,随你。链表中有两种结点,数字结点和运算符结点。
数字结点:有一个double类型的数据域,有一个指针域,指向运算符结点。
运算符结点:有一个char类型的数据域,存放运算符,还有一个指针域,指向下一个操作数。
链表结构大概是: head——>操作数——>运算符——>操作数——>运算符——>操作数……………………——>运算符——>操作数——>NULL。
然后先计算乘除,后计算加减。
乘除运算:从表头开始查找运算符结点中,数据域是*或者/的,找到之后把他两边的数字结点的数据进行计算,结果放到它前一个数字结点中。然后删除该运算符结点和其后的一个数字结点。
相当于把……操作数——>运算符1——>操作数——>运算符2……变成了……操作数——>运算符2……
然后遍历链表执行上边的过程就可以完成乘除法了。
加减法与乘除同理
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询