利用两个栈计算表达式的值(C++)

利用两个栈计算表达式的值(C++)

1.首先建立符号的优先级表(符号的优先级在严蔚敏数据结构教材53页中有所体现)
2.然后对输入的表达式进行分解,数字存在一个栈,符号存在一个栈
这里涉及到一个问题就是如何将大于10的整数连在一起而不是拆分成几个单独的数字在别人的博客中找到了一种方法,如下:
if(counter==1) //counter=1表示上一个字符也是数字,比如12不是’1’,‘2’
{
float t = num.top();
num.pop();
num.push(t10+(c-‘0’));//将字符类型转化成为数值*
counter = 1;
}
else
{
num.push(c-‘0’); //将c对应的数值入栈num
counter++;
//cout<<“num的值为:”<<num.top()<<endl;
}
这只是其中一段,如果单个数字之后是符合,则执行else程序
在else环节,一定注意将counter置为0
3.事实证明float数组可以存放char数组,在float数组中,会显示字符的ascll码值。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值