逆波蘭法求解數學表達示(C )

2021-09-07 05:58:49 字數 1237 閱讀 2345

主要是棧的應用,裡面有兩個函式deletespace(),stringtodouble()在我還有一篇部落格其中:對string的一些擴充套件函式。

本程式僅僅是主要的功能實現,沒有差錯控制。

#include#include#include#include#include"fstring.h"

/* *採用逆波蘭表示法求解數學表達示

*1、將輸入的中綴表示示轉換成字尾表達示

*2、將字尾表達示進行計算得出結果

*/using namespace std;

stackpostorderstr;

mapsymbolpriority;

void initializationsymbol(map& symbol)

void strtopoststack(string& str, stack& postorderstr)

string symbol(iter,iter+1);//符號

//按優先順序存入符號。

if (*iter == '(')

else if (flag && *iter != ')')

else if (!flag)

else

auxilary.push(symbol);}}

else if (flag && *iter == ')')

while (tmp1!="(");

auxilary.pop();

flag = false;

}//存放下乙個數字起始位置

iter1 = iter+1;

} }string tmp5(iter1, iter);

postorderstr.push(tmp5);

while (!auxilary.empty()) }

double computefun(stackpostorderstrnew)

else if (tmp7 == "-")

else if (tmp7 == "*")

else

computestack.push(value3);

} else

postorderstrnew.pop();

} return computestack.top();

}int main()

cout << endl;

cout << "the compute result is:"

}

逆波蘭式數學表示式求解

逆波蘭式數學表示式求解 輸入逆波蘭式表示式 include include using namespace std 函式表示式比較str1和str2優先順序 return 1表示str1優先順序高 return 0表示優先順序相等 return 1表示str2優先順序高 intcompare cha...

逆波蘭式與表示式求解

逆波蘭式即字尾表示法 預處理 中序表示式 逆序表示式 infix to postfix 演算法 while 表示式非空 if 遇到運算元 直接輸出 else if 遇到操作符op op是 直接入棧s op是 s.push輸出,直到 op是四則運算,則 while 1 if s為空 s.top為 op...

逆波蘭表示式的求解問題

因為要考研究生,第一次學習資料結構,演算法中的一些關於棧的基本操作是從嚴蔚敏編著的 資料結構 c語言版 學來,有一些不夠完整或者欠缺的地方,希望有大神可以幫忙指出,感激不盡。下面具體談一談逆波蘭表示式。逆波蘭表示式也就是字尾式,它的主要特徵是 s1 s2 op s1是第一運算元,s2是第二運算元,o...