typedef struct node{
int data;
struct node *next;
}NODE;
NODE *createStack(){
NODE *top,*p;
char j;
int a;
top=NULL;
j=getchar();
while(j!='?'){
scanf("%d",&a);
p=(NODE *)malloc(sizeof(NODE));
p->next=top;
p->data=a;
j=getchar;
}
return p;
}
void push(NODE *stack,int x){
NODE *p;
p=(NODE *)malloc(sizeof(NODE));
p->next=stack;
p->data=x;
stack=p; /*表示stack指针向上移动一位,把新节点吃进stack中*/
}
void pop(NODE *stack,int *value){
NODE *p;
if(stack!==NUll){
p=stack; /* 为了释放一个stack,所以必须赋值*/
*value=p->data;
stack=stack->next;
free(p);
}
return stack;
}