字尾表示式的計算和中綴表示式轉字尾表示式
此處的運算用的是鍊錶的表示方法
以下為三個會涉及到的標頭檔案
//
// error.h
// 字尾表示式
//// created by kyle.yang on 14/12/2.
//#ifndef ______error_h
#define ______error_h
#include using namespace std;
class error
node(elemtype e,node*link=null)
};#endif
//
// linkstack.h
// 字尾表示式
//// created by kyle.yang on 14/12/2.
//#ifndef ______linkstack_h
#define ______linkstack_h
#include "node.h"
#include #include using namespace std;
template class linkstack
virtual ~linkstack()
void clear()
}bool isempty() const
void push(const elemtype e)
}void top(elemtype &e) const
}void pop(elemtype &e)
}};#endif
功能函式如下
//
// function.cpp
// 字尾表示式
//// created by kyle.yang on 14/12/2.
//#include "linkstack.h"
#include "error.h"
#include #include #include using namespace std;
bool isoperator(char ch)
int operprior(char op1,char op2)
return prior;
}double operate(double first,char ch,double second)
return 0;
}void infixintopostfix()
else if((!isoperator(ch) || ch=='(' || ch==')') && (ch!=' '))
else if(ch!=' ')
ch=getchar();
}if(opnd.isempty())
throw error("缺少運算元!");
opnd.pop(operand);
if(!opnd.isempty())
throw error("缺少操作符!");
cout<<"表示式的結果為:"<>choice;
while(choice!=0)
};
主函式如下
//
// main.cpp
// 字尾表示式
//// created by kyle.yang on 14/12/2.
//#include using namespace std;
void system();
int main(void)
字尾表示式 中綴到字尾表示式
輸入空格跳出迴圈 while k getchar n 字尾表示式 此 僅限於0 9內的加減乘除 include include include define long 10 using namespace std typedef struct stack qstack void init qstac...
字尾表示式
對於乙個算術表示式我們的一般寫法是這樣的 3 4 5 6 這中寫法是中序表示式 而後序表示式則是將運算子放在運算元的後面,如 3 4 5 6 可以看出後序表示式中沒有括號,只表達了計算的順序,而這個順序恰好就是計算器中的一般計算順序。建立乙個棧s 從左到右讀表示式,如果讀到運算元就將它壓入棧s中,如...
字尾表示式
完整的題目不能複述了,概括一下題目就是輸入乙個16進製制字尾表示式 string型 輸出其結果 int型 不需要考慮異常情況 即測試用例一定是正確的表示式 不需要考慮優先順序。因為python用的比較順手,就拿python寫了 def postfixcalc str pstack nummap fo...