here's the code
Code:
...
#define SIZE_MAX 100
typedef struct stack {
char data[SIZE_MAX];
int size;
} stack;
stack *s=(stack*)malloc(sizeof(stack));
void init_stack() {
s->size=0;
return;
}
void push(char c) {
if(s->size<SIZE_MAX) {
s->data[(s->size)++]=c;
}
else printf("\nStack Full!\n");
return;
}
char pop() {
if(s->size==0) {
printf("\nStack Empty!\n");
return('~');
}
else return s->data[--(s->size)];
}
int main(void) {
int t,i,j=0;
char expressions[100][400],ch;
printf("no. of expressions:");
scanf("%d",&t);
printf("enter the expressions");
for(i=0;i<t;i++) {
printf("expr[%d]:",i+1);
scanf("%s",expressions[i]);
}
for(i=0;i<t;i++) {
init_stack();
while(j<strlen(expressions[i])) {
ch=expressions[i][j++];
if(isalpha(ch)) {
printf("%c",ch);
}
else if(ch==')') {
ch=pop();
if(ch!='~') printf("%c",ch);
}
else if(ch=='+'||ch=='-'||ch=='*'||ch=='/'||ch=='^') {
push(ch);
}
}
}
return 0;
}