[求助]数据结构中的,中缀表达式,弹出函数错误
在运算符堆栈中指针就是不下移,在数字堆栈中是正确的,不是我浪费大家的时间,实在是我把每个函数都调试过了但是没发现错误,在这儿就是不对。希望斑竹不要在删我的贴了!!!头文件我以上传了,大家可以调试一下看看!!!
switch( Precede(theta,c)){
case '<':
optr->c=c;
Push(OPTR,optr);
printf("运算符进栈");
scanf("%c",&c);
break;
case '=':
Pop(OPTR,optr);
scanf("%c",&c);
break;
case '>':
opnd=GetTop(OPTR);
printf("%c",opnd->c);
Pop(OPTR,optr); ///弹出指针不下移??????!!!!!!!
theta=optr->c;
printf("%c",theta);
opnd=GetTop(OPTR);
printf("%c",opnd->c); ///三次的输出结果都是一样的
Pop(OPND,opnd);
e=opnd->f;
Pop(OPND,opnd);
f=opnd->f;
Push(OPND,Oper(e,theta,f));
break;
default:
printf("输入错误!!\n");
exit(ERROR);
break;
}
}
[此贴子已经被作者于2006-5-22 8:48:52编辑过]