算術表示式的轉換

2021-07-11 23:32:06 字數 1030 閱讀 7715

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

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

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

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

示例輸入

a*b+(c-d/e)*f#示例輸出

+ab-c/def

a*b+c-d/e*f

ab*cde/-f*+

題解:這個題也就是先序需要說說,要想得到先序你可以吧字串從右到左掃瞄一遍。

#include

using namespace std;

char test[10000];

stackpre_oper,pre_cout;//先序的運算子儲存棧,和先序的輸出棧

stackbehind_oper;//後序的運算子儲存棧

queuemid_,behind_cout;//中序的儲存佇列,後序的輸出佇列

int compare(char ch)

void pre(char ch)//得到先序串

else

pre_oper.pop();

} else

pre_oper.push(ch);

} else }

} }

} void precout()//先序輸出函式

while(!pre_cout.empty())

else

behind_oper.pop();

} else

behind_oper.push(ch);

} else }

} }

} void behindcout()

while(!behind_cout.empty())

算術表示式的轉換

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

算術表示式的轉換

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

算術表示式的轉換

這道題卡了好久,從網上找的 但不是用棧做的,儲存起來當演算法看吧。time limit 1000ms memory limit 65536k 小明在學習了資料結構之後,突然想起了以前沒有解決的算術表示式轉化成字尾式的問題,今天他想解決一下。因為有了資料結構的基礎小明很快就解出了這個問題,但是他突然想...