C C 演算法 中綴轉字尾表示式實現1

2021-07-04 20:12:39 字數 729 閱讀 7615

c/c++ 演算法 中綴表示式轉換位字尾表示式實現1

中綴(infix)表示式:即人們常用的算數邏輯表示式,其特點是操作符位於運算元的中間,如表示式:a+b*c+(d*e+f)*g。雖然人的大腦很容易理解與分析中綴表示式,但對計算機來說中綴表示式卻是很複雜的,因此計算表示式的值時,通常需要先將中綴表示式轉換為字首或字尾表示式,然後再進行求值。對計算機來說,計算字首或字尾表示式的值非常簡單。

字尾(postfix)或者逆波蘭(reverse polish)表示式:其特點是操作符位於運算元的後面,如表示式:abc*+de*f+g*+。

#include#includeusing namespace std;

bool isoperator(char ch);

int priority(char ch);

void infix_to_postfix(char infix,char postfix);

int main()

else if(infix[i]=='(')

else if(infix[i]==')')

s1.pop();

} else if(isoperator(infix[i]))

else

s1.push(infix[i]);

}} i++;

} while(s1.size())

postfix[j-1]='\0';

}

執行結果:

中綴表示式轉字尾表示式演算法及實現

1 23 include 4 using namespace std 56 template class mystack 7 20 2122 template void mystack init 23 26 27 template bool mystack empty 28 31 32 templa...

中綴轉字尾表示式

中綴轉字尾 進棧元素 進棧規則 若棧頂元素比目前元素的優先順序大或者相等,出棧 若棧頂元素與當前元素優先順序小,入棧 若當前元素為 入棧 若當前元素為 出棧頂元素直到遇到 位置,並且 不表達 遇到運算元直接表達 include include include define n 10 void fun...

中綴表示式轉字尾表示式

using system using system.collections.generic using system.text namespace 中綴表示式轉字尾表示式 class convert public void run top break case case while top 1 st...