如何使用c++语言计算后缀表达式的值

 时间:2024-11-08 16:57:02

当我们看到一个四则混合运算的表达式的时候水貔藻疽,我们该如何计算这个表达式的值呢?一般来说,可以采用堆栈的抽象数据结构(stack惺绅寨瞀ADT)来解决。主要分为两个步骤,第一步是要将中缀表达式转化为后缀表达式;其次是计算后缀表达式的值。将中缀表达式转化为后缀表达式的方法,以及在先前的经验中提到过了。在本篇经验中,小编将介绍如何使用堆栈结构计算后缀表达式的值。后缀表达式:一般形式为abop(a,b操作数,op为操作符)。比如1+1就可以携程11+.

工具/原料

code::blocks

c++11编译器

方法/步骤

1、作为例子,我们要计算的后缀表达式为:6523+8∗+3+∗它对应的的中缀表达式为((2+3)*8+5+3)*6

如何使用c++语言计算后缀表达式的值

2、创建一个堆栈结构从左到右意思扫描输入的后缀表达式,存储后缀表达式中的操作数。

如何使用c++语言计算后缀表达式的值

如何使用c++语言计算后缀表达式的值

3、如果扫描到的元素是一个操作数,那么我们就应该把这个操作数存储到堆栈结构当中。

如何使用c++语言计算后缀表达式的值

如何使用c++语言计算后缀表达式的值

4、如果我们扫描到的元素是一个操作符,那么就从堆栈当中导出(pop)两个操作数,使用该操作符计算两个操作数的值。在将该结果导入到(push)堆栈当中

如何使用c++语言计算后缀表达式的值

如何使用c++语言计算后缀表达式的值

如何使用c++语言计算后缀表达式的值

5、如果如果后缀表达式扫描完毕,那么在堆栈中剩余的那个数就是我们想要的最后结果。

如何使用c++语言计算后缀表达式的值

6、在这一步,我将我自己根据该算法写的代码粘贴在下面提供参考。大家也可以根据自己的想法轶葜钥汜自由发挥。#include<iostream>#include<vector&爿讥旌护gt;#include<stack>usingnamespacestd;intmain(){//initializestack<int>st;vector<char>ss={'6','5','2','3','+','8','*','+','3','+','*'};for(autoc:ss){if(c>='0'&&c<='9'){inta1=c-48;st.push(a1);}elseif(c=='*'){inta=st.top();st.pop();intb=st.top();st.pop();st.push(a*b);}elseif(c=='+'){inta=st.top();st.pop();intb=st.top();st.pop();st.push(a+b);}}cout<<st.top()<<endl;return0;}

如何使用c++语言计算后缀表达式的值

设int x=1,y=1;表达式(!x||y--)的值 是怎么 运算的。求解。 食物同食注意事项 预防冠心病从青少年做起! 二次曲面存在奇向的充要条件 C语言简单编程之“整除与求余”运算的应用
热门搜索
戚继光图片 转生恶役大小姐漫画 巩俐图片 狐狸狗图片 波浪图片