算術表示式的轉換

2021-07-16 00:05:23 字數 1218 閱讀 5476

這道題卡了好久,從網上找的**,但不是用棧做的,儲存起來當演算法看吧。

time limit: 1000ms memory limit: 65536k

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

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

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

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

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

+*ab*-c/def

a*b+c-d/e*f

ab*cde/-f*+

#include#include#includechar g[200];

int top=-1;

int cmp(char ch)//比較優先順序

void ruzhan(char ch)//入棧操作

void houzhui(char f)//將中綴式轉換成字尾式的函式

else //如果是其他運算子,這裡特指加減乘除運算

}else//如果棧頂元素小於當前元素}}

}//棧中剩餘元素全部輸出

for(;top>=0;top--)

printf("%c",g[top]);

top=-1;

printf("\n");

}void qianzhui(char f)//將中綴式轉換成字首式的函式

else //如果是運算子的話

top--;

}else //如果是其他運算子,這裡特指加減乘除運算

//輸出棧頂元素

g[top]=gh[i];//用當前元素覆蓋棧頂元素}}

else//如果棧頂元素小於當前元素}}

}//棧中剩餘元素全部輸出

for(i=0;top>=0;top--,i++)

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

printf("%c",fj[i]);

printf("\n");

}void zhongzhui(char f)//將中綴式轉換成中綴式的函式(去括號)

printf("\n");

}int main()

算術表示式的轉換

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

算術表示式的轉換

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

算術表示式的轉換

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