//Linked Queue
class QueueLinked
{   class Node
    {   int info;
        Node next;
    }
    Node front, rear;
    QueueLinked()
    {   front=null;
        rear=null;
    }
    void insert(int n)
    {   Node temp=new Node();
        if(temp==null)
        {   System.out.println("Overflow");
            return;
        }
        temp.info=n;
        temp.next=null;
        if(rear==null && front==null)
        {   rear=front=temp;
        }
        else
        {   rear.next=temp;
            rear=temp;
        }
    }//insert()
    int delete()
    {   if(front==null && rear==null)
        {   System.out.println("Underflow");
            return 0;
        }
        else
        {   int temp=front.info;
            front=front.next;
            if(front==null)
            {   rear=null;
            }
            return temp;
        }
    }//delete()
    void fifo()//traverse
    {   Node ptr=front;
        while(ptr!=null)
        {   System.out.print(ptr.info+" ");
            ptr=ptr.next;
        }
        System.out.println();
    }//fifo()
    public static void main(String args[])
    {   QueueLinked queue=new QueueLinked();
        queue.insert(1);
        queue.insert(2);
        queue.insert(3);
        queue.insert(4);
        queue.insert(5);
        queue.insert(6);
        queue.fifo();
        queue.delete();
        queue.delete();
        queue.insert(7);
        queue.fifo();
    }//main
}//class LinkedQueue
//Add functions to add at front and delete from rear to make a Linked DE Queue

