#include <stdio.h>
#include <stdlib.h>
typedef struct node{
int val;
struct node*next;
}Node;
Node*head=NULL;
Node*createN(int x){
Node*newnode;
newnode
=(Node
*)malloc(sizeof(Node
)); newnode->val=x;
newnode->next=NULL;
return newnode;
}
void freeL(){
Node*p;
while(head!=NULL){
p=head->next;
head=p;
}
}
void printL(){
Node*p=head;
while(p!=NULL){
p=p->next;
}
}
void push(int x){
Node*newnode=createN(x);
newnode->next=head;
head=newnode;
}
int pop(){
if(head==NULL)return 0;
Node*temp=head;
head=head->next;
return 0;
}
void enqueue(int x){
Node*newnode=createN(x);
if(head==NULL){
head=newnode;
}else{
Node*p=head;
while(p->next!=NULL)p=p->next;
p->next=newnode;
}
}
int dequeue(){
if(head==NULL)return 0;
Node*temp=head;
head=head->next;
return 0;
}
int main(void){
int s1,s2,s3,q1,q2,q3;
push(1);
push(2);
push(3);
s1=pop();
s2=pop();
s3=pop();
printf("%d %d %d\n",s1
,s2
,s3
);
enqueue(1);
enqueue(2);
enqueue(3);
q1=dequeue();
q2=dequeue();
q3=dequeue();
printf("%d %d %d\n",q1
,q2
,q3
);
freeL();
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRsaWIuaD4KCnR5cGVkZWYgc3RydWN0IG5vZGV7CiAgICBpbnQgdmFsOwogICAgc3RydWN0IG5vZGUqbmV4dDsKfU5vZGU7CgpOb2RlKmhlYWQ9TlVMTDsKCk5vZGUqY3JlYXRlTihpbnQgeCl7CiAgICBOb2RlKm5ld25vZGU7CiAgICBuZXdub2RlPShOb2RlKiltYWxsb2Moc2l6ZW9mKE5vZGUpKTsKICAgIG5ld25vZGUtPnZhbD14OwogICAgbmV3bm9kZS0+bmV4dD1OVUxMOwogICAgcmV0dXJuIG5ld25vZGU7Cn0KCnZvaWQgZnJlZUwoKXsKICAgIE5vZGUqcDsKICAgIHdoaWxlKGhlYWQhPU5VTEwpewogICAgICAgIHA9aGVhZC0+bmV4dDsKICAgICAgICBmcmVlKGhlYWQpOwogICAgICAgIGhlYWQ9cDsKICAgIH0KfQoKdm9pZCBwcmludEwoKXsKICAgIE5vZGUqcD1oZWFkOwogICAgd2hpbGUocCE9TlVMTCl7CiAgICAgICAgcHJpbnRmKCIlZCAiLHAtPnZhbCk7CiAgICAgICAgcD1wLT5uZXh0OwogICAgfQogICAgcHJpbnRmKCJcbiIpOwp9Cgp2b2lkIHB1c2goaW50IHgpewogICAgTm9kZSpuZXdub2RlPWNyZWF0ZU4oeCk7CiAgICBuZXdub2RlLT5uZXh0PWhlYWQ7CiAgICBoZWFkPW5ld25vZGU7Cn0KCmludCBwb3AoKXsKICAgIGlmKGhlYWQ9PU5VTEwpcmV0dXJuIDA7CiAgICBOb2RlKnRlbXA9aGVhZDsKICAgIGhlYWQ9aGVhZC0+bmV4dDsKICAgIGZyZWUodGVtcCk7CiAgICByZXR1cm4gMDsKfQoKdm9pZCBlbnF1ZXVlKGludCB4KXsKICAgIE5vZGUqbmV3bm9kZT1jcmVhdGVOKHgpOwogICAgaWYoaGVhZD09TlVMTCl7CiAgICAgICAgaGVhZD1uZXdub2RlOwogICAgfWVsc2V7CiAgICAgICAgTm9kZSpwPWhlYWQ7CiAgICAgICAgd2hpbGUocC0+bmV4dCE9TlVMTClwPXAtPm5leHQ7CiAgICAgICAgcC0+bmV4dD1uZXdub2RlOwogICAgfQp9CgppbnQgZGVxdWV1ZSgpewogICAgaWYoaGVhZD09TlVMTClyZXR1cm4gMDsKICAgIE5vZGUqdGVtcD1oZWFkOwogICAgaGVhZD1oZWFkLT5uZXh0OwogICAgZnJlZSh0ZW1wKTsKICAgIHJldHVybiAwOwp9CgppbnQgbWFpbih2b2lkKXsKICAgIGludCBzMSxzMixzMyxxMSxxMixxMzsKCiAgICBwdXNoKDEpOwogICAgcHVzaCgyKTsKICAgIHB1c2goMyk7CiAgICBzMT1wb3AoKTsKICAgIHMyPXBvcCgpOwogICAgczM9cG9wKCk7CiAgICBwcmludGYoIiVkICVkICVkXG4iLHMxLHMyLHMzKTsKCiAgICBlbnF1ZXVlKDEpOwogICAgZW5xdWV1ZSgyKTsKICAgIGVucXVldWUoMyk7CiAgICBxMT1kZXF1ZXVlKCk7CiAgICBxMj1kZXF1ZXVlKCk7CiAgICBxMz1kZXF1ZXVlKCk7CiAgICBwcmludGYoIiVkICVkICVkXG4iLHExLHEyLHEzKTsKCiAgICBmcmVlTCgpOwogICAgcmV0dXJuIDA7Cn0=