用链栈实现计算器

1.用Priority函数表示运算符优先级

2.定义变量

定义两个链栈,分别存储操作符(opt)和操作数(num)。

3.初始化两个链栈并输入

4.当字符串不为‘\0’或者opt中还有操作符时继续循环

5.判断输入的是数字还是字符,是数字直接进栈

6.opt为空或者opt栈顶为 '(' 而输入字符不为 ')' 或者输入字符优先级比栈顶字符高   直接进栈

7.opt栈顶为 '(' 输入字符为 ')' ,出栈不运算

8.输入字符为 '\0' 而opt栈不为空 或者 输入字符为 ')' 而栈顶不为 '(' 或者 输入字符优先级比栈顶字符低或相等    出栈栈顶字符和两个操作数,进行运算并将结果重新放入num栈中。

9.打印num中最后的元素,就是结果

附:头文件Counter.h

调用函数Counter.c

初始化

进栈

栈顶元素

出栈









  • 4
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值