import java.util.*;
public class DQueue {
    private int q[],cap,f,r;
    public DQueue(int cap)
    {
        this.cap=cap;
        q=new int[cap];
        f=r=cap/2;
    }
    public boolean isEmpty()
    {
        if(f==r)
            return true;
        else return false;
    }
    public void insertFront(int ele)
    {
        if(f==-1)
        {
            System.out.println("Queue Overflow");
            return;
        }
        q[f]=ele;
        f--;
    }
    public void insertRear(int ele)
    {
        if(r==cap-1)
        {
            System.out.println("Queue Overflow");
            return;
        }
        r++;
        q[r]=ele;
    }
    public int deleteFront() throws Exception
    {
        if(isEmpty())
            throw new Exception("Queue Underflow");
        f++;
        return(q[f]);
    }
    public int deleteRear() throws Exception
    {
        if(isEmpty())
            throw new Exception("Queue Underflow");
        int z=q[r];
        r--;
        return z;

    }
    public void display()
    {
        if(isEmpty())
        {
            System.out.println("Queue Empty");
            return;
        }
        for(int i=f+1;i<=r;i++)
            System.out.print(q[i]+" ");
        System.out.println();
    }
}
class DQueueExp
{
    public static void main(String args[])
    {
        Scanner src=new Scanner(System.in);
        System.out.println("Enter the capacity of the Queue");
        int cap=src.nextInt();
        DQueue obj=new DQueue(cap);
        while(true)
        {
            int ele;
            System.out.println("Enter choice \n1.InsertRear \n2.InsertFront \n3.DeleteRear \n4.DeleteFront \n5.isEmpty \n.6Display \n.7EXIT");
            int ch=src.nextInt();
            if(ch==7)
                break;
            switch(ch)
            {
                case 1:System.out.println("Enter the element to insert at rear");
                ele=src.nextInt();
                obj.insertRear(ele);
                obj.display();
                break;

                case 2:System.out.println("Enter the elements to insert at front");
                ele=src.nextInt();
                obj.insertFront(ele);
                obj.display();
                break;

                case 3:try
                {
                    System.out.println("Element deleted at rear: ");
                    obj.deleteRear();
                }
                catch (Exception e)
                {
                    System.out.println(e);
                }
                obj.display();
                break;

                case 4:try
                {
                    System.out.println("Element deleted at front: ");
                    obj.deleteFront();
                }
                catch(Exception e)
                {
                    System.out.println(e);
                }
                obj.display();
                break;

                case 5:boolean p;
                p=obj.isEmpty();
                System.out.println("Is Queue Empty? : "+p);
                break;

                case 6:obj.display();
                break;

                default: System.out.println("INVALID CHOICE");

        }

    }
}
}

Output:

Enter the capacity of the Queue
50
Enter choice 
1.InsertRear 
2.InsertFront 
3.DeleteRear 
4.DeleteFront 
5.isEmpty 
.6Display 
.7EXIT
5
Is Queue Empty? : true
Enter choice 
1.InsertRear 
2.InsertFront 
3.DeleteRear 
4.DeleteFront 
5.isEmpty 
.6Display 
.7EXIT
1
Enter the element to insert at rear
45
45 
Enter choice 
1.InsertRear 
2.InsertFront 
3.DeleteRear 
4.DeleteFront 
5.isEmpty 
.6Display 
.7EXIT
1
Enter the element to insert at rear
55
45 55 
Enter choice 
1.InsertRear 
2.InsertFront 
3.DeleteRear 
4.DeleteFront 
5.isEmpty 
.6Display 
.7EXIT
1
Enter the element to insert at rear
88
45 55 88 
Enter choice 
1.InsertRear 
2.InsertFront 
3.DeleteRear 
4.DeleteFront 
5.isEmpty 
.6Display 
.7EXIT
1
Enter the element to insert at rear
34
45 55 88 34 
Enter choice 
1.InsertRear 
2.InsertFront 
3.DeleteRear 
4.DeleteFront 
5.isEmpty 
.6Display 
.7EXIT
2
Enter the elements to insert at front
12
12 45 55 88 34 
Enter choice 
1.InsertRear 
2.InsertFront 
3.DeleteRear 
4.DeleteFront 
5.isEmpty 
.6Display 
.7EXIT
2
Enter the elements to insert at front
99
99 12 45 55 88 34 
Enter choice 
1.InsertRear 
2.InsertFront 
3.DeleteRear 
4.DeleteFront 
5.isEmpty 
.6Display 
.7EXIT
2
Enter the elements to insert at front
59
59 99 12 45 55 88 34 
Enter choice 
1.InsertRear 
2.InsertFront 
3.DeleteRear 
4.DeleteFront 
5.isEmpty 
.6Display 
.7EXIT
3
Element deleted at rear: 
59 99 12 45 55 88 
Enter choice 
1.InsertRear 
2.InsertFront 
3.DeleteRear 
4.DeleteFront 
5.isEmpty 
.6Display 
.7EXIT
4
Element deleted at front: 
99 12 45 55 88 
Enter choice 
1.InsertRear 
2.InsertFront 
3.DeleteRear 
4.DeleteFront 
5.isEmpty 
.6Display 
.7EXIT
5
Is Queue Empty? : false
Enter choice 
1.InsertRear 
2.InsertFront 
3.DeleteRear 
4.DeleteFront 
5.isEmpty 
.6Display 
.7EXIT
6
99 12 45 55 88 
Enter choice 
1.InsertRear 
2.InsertFront 
3.DeleteRear 
4.DeleteFront 
5.isEmpty 
.6Display 
.7EXIT
7