int isOpr(char c)
{
if(c==\'+\'||c==\'-\'||c==\'*\'||c==\'/\'||c==\'(\'||c==\')\'||c==\'=\')
return 0;
else
return 1;
}
float operate(float x, char opr, float y)
{
float result;
switch (opr)
{
case \'+\':
result = x + y;
break;
case \'-\':
result = x - y;
break;
case \'*\':
result = x * y;
break;
case \'/\':
if (y == 0)
{
printf("Divided by zero!\\n");
return 0;
}
else
{
result = x / y;
break;
}
default:
printf("Bad Input.\\n");
return 0;
}
return result;
}
struct Stack{
SNode *top;
SNode *base;
int size;
};
/*栈操作函数*/
int InitStack(Stack &S); /*创建栈*/
int DestroyStack(Stack &S); /*销毁栈*/
int ClearStack(Stack &S); /*清空栈*/
int GetTop(Stack S, SNode &e); /*取出栈顶结点并返回节点值*/
int Push(Stack &S,SNode e); /*将结点e压入栈*/
int Pop(Stack &S,SNode &e); /*删除栈顶结点并返回其节点值*/