#include<stdlib.h>
#include<stdio.h>
#define ok 0
#define error -1
typedef char element;
typedef struct snode
{
element data;
struct snode *next;
}snode,*linkstack;
void creat_linkstact(linkstack &l)
{ l=(linkstack)malloc(sizeof(snode));
if(!l)
printf("shen qing shi bai!");
l->next=NULL;
}
int push(linkstack &top,element e)
{ snode *q;
q=(linkstack)malloc(sizeof(snode));
if(!q)
{ printf("overflow!");
return (error);
}
q->data=e;
q->next=top->next;
top->next=q;
return (ok);
}
char pop(linkstact &top,element &e)
{ snode *q;
if(!top)
{ printf("error!");
return (error);
}
e=top->next->data;
////////////////////////////
q=top->next;
top->next=q->next;
//?:q=top;
// top=top->next;
////////////////////////////
free(q);
return e;
}
char gettop(linkstack &top)
{ element e;
e=top->next->data;
//top=top->next;
return e;
}
int in(char c)
{ int i;
int flag=1;
char op[]={"+-*/()#"};
for(i=0;i<7;i++)
if(c==op[i])
flag=0;
return flag;
}
int contrast(char ch)