您现在的位置是:主页 > news > 模板站怎么改成营销型网站/打开百度网页
模板站怎么改成营销型网站/打开百度网页
admin2025/6/5 14:26:33【news】
简介模板站怎么改成营销型网站,打开百度网页,wordpress缓存类,全国网站备案栈的三大应用例题: (1)逆波兰式:一个数字栈 链接:(63条消息) 【数据结构】NOJ008—逆波兰式_杨的博客-CSDN博客 (2)中缀表达式计算:一个数字栈和一个运算符栈 链接:(…
模板站怎么改成营销型网站,打开百度网页,wordpress缓存类,全国网站备案栈的三大应用例题:
(1)逆波兰式:一个数字栈
链接:(63条消息) 【数据结构】NOJ008—逆波兰式_杨的博客-CSDN博客
(2)中缀表达式计算:一个数字栈和一个运算符栈
链接:(…
栈的三大应用例题:
(1)逆波兰式:一个数字栈
链接:(63条消息) 【数据结构】NOJ008—逆波兰式_杨的博客-CSDN博客
(2)中缀表达式计算:一个数字栈和一个运算符栈
链接:(63条消息) 【数据结构】【拓展题】【01】中缀表达式计算_杨的博客-CSDN博客
(3)逆波兰式计算:一个数字栈
链接:(63条消息) 【数据结构】【拓展题】【02】逆波兰式计算_杨的博客-CSDN博客
题目简述:
输入一个逆波兰式,输出其计算结果。同时需注意,所有的数字均是一位数。
输入:
1231+*+
输出:
9输入:
123*+34*+
输出:
19
解析:
也是经典的利用栈解决问题,其实不难。
只需要一个栈。遇到数字就将它压入栈,遇到一个运算符,说明此时需要计算,且必然是最前面两个数据,就直接拿出栈顶前两个元素计算即可。然后将计算结果入栈。记得刚刚用过的两个都要出栈。最后栈里只剩一个计算结果。
重点:
理清思路,其实很简单。
代码:
#include <iostream>
#include<stdio.h>
#include<stdlib.h>
#include<string>
#include<stack>
using namespace std;void Calculate_Expr(string str,int len,stack<int>stk)
{for(int i=0;i<len;i++){if(isdigit(str[i]))stk.push(int(str[i]-'0'));else if(str[i]=='+'||str[i]=='-'||str[i]=='*'||str[i]=='/'){int t1,t2;t1=stk.top();stk.pop();t2=stk.top();stk.pop();if(str[i]=='+')stk.push(t1+t2);else if(str[i]=='-')stk.push(t1-t2);else if(str[i]=='*')stk.push(t1*t2);else if(str[i]=='/')stk.push(t1/t2);elsecout<<"运算符错误"<<endl;}else{cout<<"表达式有误"<<endl;return;}}if(!stk.empty())cout<<stk.top()<<endl;elsecout<<"无结果,计算出错!"<<endl;
}
int main()
{stack<int>stk;while(!stk.empty())stk.pop();string str;cin>>str;int len=str.size();Calculate_Expr(str,len,stk);return 0;
}