char postfix[]="((A+(B*C))-D)";
char stack[STACK_SIZE];
char data,top=-1;
int i,len;
len=strlen(postfix);
// printf("%d",len);
for(i=0;i<len;i++)
{
switch(postfix[i])
{
case'(':
case'+':
case'-':
case'*':
case'/':push(stack,STACK_SIZE,&top,postfix[i]);
break;
case')':do{
pop(stack,&top,&data);
if(data!='(')
printf("%c",data);
else
break;
}while(1);
break;
default:printf("%c",postfix[i]);
break;
}
}
printf("\n");
return((*top==-1)?1:0);
return((*top==n-1)?1:0);
if(*top<n-1){
*top=*top+1;
stack[*top]=data;
return(1);
}else{
return(0);
}
if(*top>-1){
*data=stack[*top];
*top=*top-1;
return(1);
}else{
return(0);
}
int index;
for(index=0;index<=top;index++)
{
printf("%d ",stack[index]);
}
printf("\n");
留言列表