算術表示式的轉換

2021-07-16 03:29:17 字數 1176 閱讀 9922

算術表示式的轉換

time limit: 1000ms memory limit: 65536k

小明在學習了資料結構之後,突然想起了以前沒有解決的算術表示式轉化成字尾式的問題,今天他想解決一下。

因為有了資料結構的基礎小明很快就解出了這個問題,但是他突然想到怎麼求出算術表示式的字首式和中綴式呢?小明很困惑。聰明的你幫他解決吧。

輸入一算術表示式,以\'#\'字元作為結束標誌。(資料保證無空格,只有一組輸入)

輸出該表示式轉換所得到的字首式 中綴式 字尾式。分三行輸出,順序是字首式 中綴式 字尾式。

a*b+(c-d/e)*f#

+*ab*-c/def

a*b+c-d/e*f

ab*cde/-f*+

#include#include#include#include#includeusing namespace std;

stacks;

char c[100]; //設定乙個全域性變數,存放出棧的數和表示式。為的是,在字首表示式中需要倒著輸出

int cnt;

void change(char a,int f) //f的作用是判斷字首和中綴表示式,f=1表示中綴,f=0表示字尾

s.push(a[i]);

}else

s.push(a[i]);}}

else if(a[i]=='*'||a[i]=='/')

s.push(a[i]);

}} else if(a[i]==')')

s.pop();

}else break;

}while(!s.empty())

}int main()

{ int i,j;

char a[1000],b[1000];

memset(a,0,sizeof(a));

memset(b,0,sizeof(b));

cin>>a;

int m=strlen(a);

m=m-1;

for(i=0,j=m-1;i=0;i--)

cout<

算術表示式的轉換

小明在學習了資料結構之後,突然想起了以前沒有解決的算術表示式轉化成字尾式的問題,今天他想解決一下。因為有了資料結構的基礎小明很快就解出了這個問題,但是他突然想到怎麼求出算術表示式的字首式和中綴式呢?小明很困惑。聰明的你幫他解決吧。輸入 輸入一算術表示式,以 字元作為結束標誌。資料保證無空格,只有一組...

算術表示式的轉換

time limit 1000ms memory limit 65536k 小明在學習了資料結構之後,突然想起了以前沒有解決的算術表示式轉化成字尾式的問題,今天他想解決一下。因為有了資料結構的基礎小明很快就解出了這個問題,但是他突然想到怎麼求出算術表示式的字首式和中綴式呢?小明很困惑。聰明的你幫他解...

算術表示式的轉換

time limit 1000ms memory limit 65536k 小明在學習了資料結構之後,突然想起了以前沒有解決的算術表示式轉化成字尾式的問題,今天他想解決一下。因為有了資料結構的基礎小明很快就解出了這個問題,但是他突然想到怎麼求出算術表示式的字首式和中綴式呢?小明很困惑。聰明的你幫他解...