#include <iostream>
#include<bits/stdc++.h>
using namespace std;
typedef struct node{
int data;
struct node *next;
}Node;
typedef struct{
Node *rear;
}linkqueue;
void de(linkqueue &q){
Node *p,*t;
p=q.rear->next;
t=p->next;
p->next=t->next;
cout<<t->data<<endl;
free(t);
if(p->next==p) q.rear=p;
}
void init(linkqueue &q){
q.rear=new Node;
q.rear->next=q.rear;
}
void enter(linkqueue &q,int x){
Node *p=new Node;
p->data=x;
p->next=q.rear->next;
q.rear->next=p;
q.rear=p;
}
int isempty(linkqueue q){
if(q.rear->next==q.rear) return 1;
else return 0;
}
void kong(linkqueue &q){//队列置空
while(!isempty(q)){
de(q);
}
}
int main()
{
linkqueue q;
init(q);
enter(q,10);
enter(q,20);
enter(q,30);
enter(q,40);
enter(q,50);
cout << isempty(q)<< endl;
de(q);
de(q);
de(q);
cout << isempty(q)<< endl;
kong(q);
cout << isempty(q)<< endl;
return 0;
}