Glooda @ 2023-04-20 21:09:23
为啥没法输出啊,而且时间复杂度高的快要炸了
代码是参考洛谷的深入浅出上15-5内容上的算法写的
#include<bits/stdc++.h>
using namespace std;
int main(){
int s,a,b;
stack<int> n;//
char text;
do{
text=getchar();//每次只读入一个
if(text>='0'||text<='9'){
s=s*10+text-'0';
}
else
if(text='.'){
n.push(s);
s=0;
}
else if(text!='@'){
a=n.top();
n.pop();
b=n.top();//此时栈中前两个元素待运算
if(text=='+'){
n.push(a+b);//压入
}
else
if(text=='-'){
n.push(b-a);
}
else
if(text=='*'){
n.push(a*b);
}
else
if(text=='/'){
n.push(a/b);
}
}
}while(text!='@');
printf("%d/n",n.top());
return 0;
}
希望dalao能解答疑问,初次接触数据结构
by Glooda @ 2023-04-20 21:13:20
个人是这样理解书上的算法
首先创建n栈 依次一个一个读入char文件,将数据存入s中,在点这个分界线入栈,然后当两个数据共同入栈时可以读到运算符号,然后赋值给ab参与运算后,结果入栈,然后依托这个数据不断运算下去,最后栈顶就是答案
若是有理解错误欢迎dalao解答
by jimeikun_sunxuhao @ 2023-04-24 09:00:11
...能具体发一下题目或题目链接吗,不然都不知道题目想干什么