void postfixEval()
{
char postfixList[100] = {0};
printf("请输入将要求值的后缀表达式:\n");
scanf("%s", postfixList);
getchar();
int length;
length = (int) strlen(postfixList);
LiStack num;
num = initStack();
for (int i = 0; i < length; i++)
{
if (isdigit(postfixList[i]))
{
int nums = asciiToint(postfixList[i]);
push(num, nums);
}
else
{
int second = pop(num);
int first = pop(num);
push(num, domatch(first, postfixList[i], second));
}
}
printf("该表达式的值为%d\n", pop(num));
}
int asciiToint(char ascii)
{
int i = ascii - '0';
return i;
}
int domatch(int op1, char op, int op2)
{
int first = (int)op1, second = (int)op2;
if (op == '*')
{
return first * second;
}
else if(op == '/')
{
return first / second;
}
else if (op == '+')
{
return first + second;
}
else
{
return first - second;
}
}