time limit: 1000ms
memory limit: 65536kb
submit
statistic
problem description
小明在學習了資料結構之後,突然想起了以前沒有解決的算術表示式轉化成字尾式的問題,今天他想解決一下。
因為有了資料結構的基礎小明很快就解出了這個問題,但是他突然想到怎麼求出算術表示式的字首式和中綴式呢?小明很困惑。聰明的你幫他解決吧。
input
輸入一算術表示式,以\'#\'字元作為結束標誌。(資料保證無空格,只有一組輸入)
output
輸出該表示式轉換所得到的字首式 中綴式 字尾式。分三行輸出,順序是字首式 中綴式 字尾式。
example input
a*b+(c-d/e)*f#
example output
+*ab*-c/defa*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 小明在學習了資料結構之後,突然想起了以前沒有解決的算術表示式轉化成字尾式的問題,今天他想解決一下。因為有了資料結構的基礎小明很快就解出了這個問題,但是他突然想到怎麼求出算術表示式的字首式和中綴式呢?小明很困惑。聰明的你幫他解...