字尾表示式

2021-06-27 10:37:33 字數 1835 閱讀 9962

字尾表示式的計算和中綴表示式轉字尾表示式

此處的運算用的是鍊錶的表示方法

以下為三個會涉及到的標頭檔案

//

// 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...