-
大小: 2KB文件類型: .cpp金幣: 1下載: 0 次發(fā)布日期: 2021-05-14
- 語言: C/C++
- 標(biāo)簽:
資源簡介
輸入一個(gè)中綴表達(dá)式,將其轉(zhuǎn)換為等價(jià)的后綴表達(dá)式后輸出并計(jì)算結(jié)果。
代碼片段和文件信息
/*
輸入一個(gè)中綴表達(dá)式,將其轉(zhuǎn)換為等價(jià)的后綴表達(dá)式后輸出
并計(jì)算結(jié)果。?
*/?
#include?
#include?
#include?
using?namespace?std;
bool?chuyes;
char?s[110]t[300];
stack??a;
stack??b;
bool?shu(char?x)
{
?????return?x>=‘0‘&&x<=‘9‘;
}
bool?sign(char?x)
{
?????return?x==‘+‘||x==‘-‘||x==‘*‘||x==‘/‘;
}
bool?budi(char?xchar?y)
{
???????if?((x==‘+‘||x==‘-‘)&&(y==‘*‘||y==‘/‘))?return?false;
???????return?true;
}
int?count()
{
???????int?intt1t2;
???????for?(;!a.empty();a.pop());
???????memset(t0sizeof(t));
???????for?(i=nt=0;s[i]!=‘\0‘;i++)
???????????if?(shu(s[i]))
???????????{
??????????????for?(;s[i]!=‘\0‘&&shu(s[i]);i++)?t[nt++]=s[i];
??????????????t[nt++]=‘‘;
??????????????i--;
???????????}
???????????else?if?(sign(s[i]))
????????????????{
???????????????????for?(;!a.empty()&&a.top()!=‘(‘&&budi(a.top()s[i]);a.pop())?t[nt++]=a.top();
???????????????????a.push(s[i]);
????????????????}
???????????else?if?(s[i]==‘(‘)?a.push(s[i]);
???????????else?if?(s[i]==‘)‘)
????????????????{??for?(;a.top()!=‘(‘;a.pop())?t[nt++]=a.top();
???????????????????a.pop();
????????????????}
???????fo
評(píng)論
共有 條評(píng)論