栈的应用--四则运算 c++

本文介绍了如何使用C++进行四则运算的处理,包括中缀表达式转换为后缀表达式以及后缀表达式的计算。在中缀转后缀过程中,遵循特定的规则处理括号、运算符和数字,确保正确优先级。在后缀表达式计算时,遍历表达式,根据运算符进行栈内运算,最终栈顶元素即为计算结果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

四则运算主要分为两个部分:

  1. 中缀转后缀
    规则为:先遍历中缀表达式的每一个字符,如果是数字直接输出到后缀表达式,如果是符号,需要判断与栈顶符号的优先级,是右括号或者优先级高于栈顶符号(乘除优先于加减)则依次输出出栈并输出,然后将当前符号压入栈。这里把符号分为几类:①’(’,入栈;
    ②’)’,栈顶符号依次出栈并输出直到栈顶元素为’(’,然后将当前符号入栈;
    ③’+’or’-‘,栈顶符号依次出栈直到栈为空或者栈顶元为’(’,然后把当前符号压入栈。
    ④’’ or ‘/’, 为栈顶符号为’‘或’/’的元素依次出栈,直到遇到其他符号或者栈为空,然后把当前符号压栈。
    最后将栈中剩余分符号输出。
string BackToMid(string s)
{
    string ret;
    stack<int> stk;
    for(string::size_type i = 0; i< s.size(); i++)
    {
        if( isdigit(s[i]) )
        {
            ret += s[i];
            
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值