#include <iostream>
using namespace std;

struct Node{
  
int data;
  Node 
*next;
}
;

  
class Linkqueue{
   
public:
     Linkqueue();
     
~Linkqueue();
     
void Enqueue(int x);
     
int Dequeue();
     
int Getqueue();
   
private:
     Node 
*front;
     Node 
*rear;
}
;
  Linkqueue::Linkqueue()
{
     Node 
*s;
     s
=new Node;
     s
->next=NULL;
     front 
= rear=s;
}

  Linkqueue::
~Linkqueue(){
     Node 
*p;
     p
=new Node;
    
while(front!=rear){
     p
=front->next;
     p
->next=front->next;
     delete front;
     front
=p;
    }
 
  }

 
void Linkqueue::Enqueue(int x){
     Node 
*s;
     s
=new Node;
      s
->data=x;
      s
->next=NULL;
      rear
->next=s;
      rear
=s;
 }

 
int Linkqueue::Dequeue(){
      
if(front==rear) throw "error";
      Node 
*p;
      p
=new Node;
      p
=front->next;
      
int x=p->data;
      front
->next= p->next;
      
if(p->next=NULL) rear=front;
      delete p;
       
return  x;
}

  
int Linkqueue::Getqueue(){
      
return front->next->data;
}

  
void main()
{

    Linkqueue q;
   q.Enqueue(
2);
   cout
<<q.Getqueue()<<endl;
   q.Enqueue(
3);
   q.Enqueue(
4);
   cout
<<q.Dequeue()<<endl;
   cout
<<q.Getqueue();
}