共回答了23个问题采纳率:82.6%
#include
#define MaxSize 99
void trans(char str[],char exp[]) /*将算术表达式转换成后追表达式*/
{
struct
{
char data[MaxSize];
int top; /*top为栈顶*/
}op; /*定义一个含data和top的结构体*/
char ch;
int i=0,t=0;
op.top=-1;
ch=str[i]; /*将str的每一个数转换成ch*/
i++;
while(ch!=' ') /*ch对应不同的符号的时候对应的转换情况*/
{
switch(ch)
{
case'(': /*当是(的时候,将此括号存入栈tp*/
op.top++;op.data[op.top]=ch;
break;
case')':
while(op.data[op.top]!='(')
{
exp[t]=op.data[op.top];
op.top--;
t++;
}
op.top--;
break;
case'+':
case'-':
while(op.top!=-1&&op.data[op.top]!='(')
{
exp[t]=op.data[op.top];
op.top--;
t++;
}
op.top++;
op.data[op.top]=ch;
break;
case'*':
case'/':
while(op.top=='/'||op.top=='*')
{
exp[t]=op.data[op.top];
op.top--;
t++;
}
op.top++;
op.data[op.top]=ch;
break;
case' ':
break;
default:
while(ch>='0'&&ch='0'&&ch
1年前
2