/* author screen name Andromeda_Galaxy; chinese name 杨子俊 */ #include<bits/stdc++.h> using namespace std; struct position { int date=0; position *next; position *before; }; struct q_queue { position p; // front; position q; // rear; }; void build_queue(q_queue &ss) { ss.q.next=&ss.p; ss.q.before=&ss.p; ss.p.next=&ss.q; ss.p.before=&ss.q; } void push_queue(q_queue &ss,int num) { position *x1=ss.p.before; (*x1).next=new position; position *x2=(*x1).next; (*x2).before=x1; (*x2).next=&ss.p; ss.p.before=x2; (*x2).date=num; } void top_queue(q_queue &ss) { position *x1=ss.q.next; position *x2=&ss.q; if( (*x1).next==x2) cout<<"error"<<endl; else cout<<(*x1).date<<endl; } void pop_queue(q_queue &ss) { position *x1=ss.q.next; position *x2=(*x1).next; ss.q.next=x2; (*x2).before=&ss.q; delete(x1); } int32_t main() { q_queue ss; build_queue(ss); push_queue(ss,1); push_queue(ss,2); push_queue(ss,3); // cout<<"-------"<<endl; top_queue(ss); pop_queue(ss); top_queue(ss); }