看到別人寫的乙個表示式求值程式,想到很久之前寫的乙個。中間有個字串轉數值型,可以用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...