算術表示式的轉換

2021-07-16 02:42:52 字數 1167 閱讀 3888

time limit: 1000ms   memory limit: 65536k  有疑問?點這裡^_^

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

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

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

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

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

+*ab*-c/def

a*b+c-d/e*f

ab*cde/-f*+

中綴轉字首的方法和轉字尾的很類似;

轉字首先將中綴式逆置,讓原來的左括號變右括號,右括號變左括號;

然後按求字尾式的方法將每次出棧的結果儲存,再逆置輸出。

中綴轉前字尾參考來自:

#includeusing namespace std;

char a[1000],b[1000],c[1000];

int youxian(char a)

void solve_pre(char b)//求字首式

else

else

sp.pop();

}else

}else

else}}

}i++;

}while(!sp.empty())

int j;

for(j=k-1;j>=0;j--)//逆輸出

else

else

sk.pop();

}else

}else

else}}

}i++;

}while(!sk.empty())

for(int j=0;j>a;

int lenth =strlen(a);

int i,j;

for(i=0,j=lenth-2;ib[i]='#';

solve_pre(b);

for(int q=0;qcout

return 0;

}

算術表示式的轉換

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

算術表示式的轉換

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

算術表示式的轉換

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