字尾表示式實現表示式求值

2021-06-22 12:59:55 字數 701 閱讀 6383

看到別人寫的乙個表示式求值程式,想到很久之前寫的乙個。中間有個字串轉數值型,可以用stringstream來實現或者c語言裡面的strtod直接得到

#include#include#include#include#includeusing namespace std;

class data

};double get_value(string str)

else

string s_temp(s,flag,len);

m_data.value=get_value(s_temp);

}else

m_data.value=s[flag]-'0';

} vdata.push_back(m_data);

} bool flag=true;

for(vector::iterator i=vdata.begin();i!=vdata.end();++i)

temp_stack.pop();

}else

}} }

while(!temp_stack.empty())

for(vector::iterator i=hou_zui.begin();i!=hou_zui.end();++i)

else if(i->fuhao=='-')

else if(i->fuhao=='*')

else

} }cout<

表示式求值與字尾表示式

乙個算術表示式,含有數字 為簡化處理,數字只有一位 運算子 以及括號,求表示式的值。給出的表示式是一般我們見到的中綴表示式,即運算子位於運算元之間。如果把中綴表示式轉化為字尾表示式,那麼對字尾表示式求值將會很方便。字尾表示式特點 1.操作符位於運算元之後 2.沒有括號 3.運算子沒有優先順序。中綴表...

字尾表示式求值

字尾表示式求值過程中不需要考慮運算子的優先順序,只需要對該表示式中的每乙個元素進行判斷,若為運算元則將其儲存在乙個陣列裡 入棧 若為運算子則取出前面的兩個運算元 彈棧 並運算,並將運算結果放回該陣列 入棧 最終陣列的最後乙個元素 棧頂元素 即為該表示式的運算結果.如 字尾表示式 23 等價於中綴表示...

字尾表示式求值

題目描述 為了便於處理表示式,常常將普通表示式 稱為中綴表示 轉換為字尾sqstack 順序棧的初始化 status initstack sqstack s 順序棧的入棧 status push sqstack s,selemtype e 演算法3.3 順序棧的出棧 status pop sqsta...