小明在學習了資料結構之後,突然想起了以前沒有解決的算術表示式轉化成字尾式的問題,今天他想解決一下。
因為有了資料結構的基礎小明很快就解出了這個問題,但是他突然想到怎麼求出算術表示式的字首式和中綴式呢?小明很困惑。聰明的你幫他解決吧。
輸入 輸入一算術表示式,以\』#\』字元作為結束標誌。(資料保證無空格,只有一組輸入)
輸出 輸出該表示式轉換所得到的字首式 中綴式 字尾式。分三行輸出,順序是字首式 中綴式 字尾式。
示例輸入
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 小明在學習了資料結構之後,突然想起了以前沒有解決的算術表示式轉化成字尾式的問題,今天他想解決一下。因為有了資料結構的基礎小明很快就解出了這個問題,但是他突然想...