#include<stdio.h>
#include<stdlib.h>
typedef struct Stack{
int data;
struct Stack* next;
}Stack;
void push(Stack*, int);
int pop(Stack*);
int main(){
Stack* top=NULL;
push(top,2);
printf("push %d \n",top
->data
);
push(top,3);
printf("push %d \n",top
->data
);
push(top,1);
printf("push %d \n",top
->data
);
return 0;
}
void push(Stack* top,int n){
Stack
* node
= (Stack
*)malloc(sizeof(Stack
)); node->data=n;
node->next=top;
top=node;
}
int pop(Stack* top){
int n=top->data;
Stack* node=top;
top=top->next;
return n;
}
I2luY2x1ZGU8c3RkaW8uaD4KI2luY2x1ZGU8c3RkbGliLmg+CnR5cGVkZWYgc3RydWN0IFN0YWNrewoJaW50IGRhdGE7CglzdHJ1Y3QgU3RhY2sqIG5leHQ7Cn1TdGFjazsKCnZvaWQgcHVzaChTdGFjayosIGludCk7CmludCBwb3AoU3RhY2sqKTsKCmludCBtYWluKCl7CglTdGFjayogdG9wPU5VTEw7CgkKCXB1c2godG9wLDIpOwoJcHJpbnRmKCJwdXNoICVkIFxuIix0b3AtPmRhdGEpOwoJCglwdXNoKHRvcCwzKTsKCXByaW50ZigicHVzaCAlZCBcbiIsdG9wLT5kYXRhKTsKCQoJcHVzaCh0b3AsMSk7CglwcmludGYoInB1c2ggJWQgXG4iLHRvcC0+ZGF0YSk7CgkKCXByaW50ZigicG9wICVkIFxuIixwb3AodG9wKSk7CglwcmludGYoInBvcCAlZCBcbiIscG9wKHRvcCkpOwoJcHJpbnRmKCJwb3AgJWQgXG4iLHBvcCh0b3ApKTsKCXByaW50ZigicG9wICVkIFxuIixwb3AodG9wKSk7CglyZXR1cm4gMDsKfQoKCnZvaWQgcHVzaChTdGFjayogdG9wLGludCBuKXsKCVN0YWNrKiBub2RlID0gKFN0YWNrKiltYWxsb2Moc2l6ZW9mKFN0YWNrKSk7IAoJbm9kZS0+ZGF0YT1uOwoJbm9kZS0+bmV4dD10b3A7Cgl0b3A9bm9kZTsKfQoKaW50IHBvcChTdGFjayogdG9wKXsKCWludCBuPXRvcC0+ZGF0YTsKCVN0YWNrKiBub2RlPXRvcDsKCXRvcD10b3AtPm5leHQ7CglmcmVlKG5vZGUpOwoJcmV0dXJuIG47Cn0=