算術表示式的轉換

2021-08-04 21:56:21 字數 1272 閱讀 6877

time limit: 1000ms

memory limit: 65536kb

submit

statistic

problem description

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

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

input

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

output

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

example input

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

example output

+*ab*-c/def

a*b+c-d/e*f

ab*cde/-f*+

hint

author

#include #include using namespace std;

char a[150];

int len, cnt;

void solve(char *n, int f)

else if(n[i]== '(')//左括號直接進棧

st.push(n[i]);

else if(n[i] == ')')

st.pop();

}else if(n[i] == '+' || n[i] == '-')

}else

while(! st.empty() && st.top() != '(')

st.push(n[i]);

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

st.push(n[i]);}}

while(!st.empty())

}int main()

solve(sa,1);//字首

for(i = cnt -1; i >= 0; i--)

printf("\n");

for(i = 0; i < len; i++)//中綴

printf("\n");

solve(st,0);//字尾

for(i = 0; i < cnt; i++)

printf("\n");

}return 0;

}

算術表示式的轉換

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

算術表示式的轉換

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

算術表示式的轉換

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