data structures using else return queue[front]void display(int iprintf("\ ")if (front ==- &rear=- printf ("\ queue is empty")else if(front<rearfor( =front; <=rear; ++printf("\ % "queue[ ])else for( =front; <max; ++printf("\ % "queue[ ])for( = ; <=rear; ++printf("\ % "queue[ ])output ****main menu **** insert an element delete an element peek display the queue exit enter your option enter the number to be inserted in the queue enter your option the number deleted is enter your option queue is empty enter your option deques deque (pronounced as 'deckor 'dequeue'is list in which the elements can be inserted or deleted at either end it is also known as head-tail linked list because elements can be added to or removed from either the front (heador the back (tailend howeverno element can be added and deleted from the middle in the computer' memorya deque is implemented using either circular array or circular doubly linked list in dequetwo pointers are maintainedleft and rightwhich point to either end of the deque the elements in deque extend from the left end to the right end and since it is circulardequeue[ - is followed by dequeue[ consider the deques shown in fig there are two variants of double-ended queue they include input restricted deque in this dequeue insertions can be done only at one of the ends left right while deletions can be done from both ends output restricted deque in this dequeueright left deletions can be done only at one of the endsfigure double-ended queues while insertions can be done on both ends