data structures using while(ptr!= -rearprintf("% \ "ptr -data)ptr ptr -nextprintf("% \ "ptr -data)return qstruct queue *delete_element(struct queue *qstruct node *ptrptr -frontif( -front =nullprintf("\ underflow")else -front -front -nextprintf("\ the value being deleted is % "ptr -data)free(ptr)return qint peek(struct queue *qif( ->front==nullprintf("\ queue is empty")return - else return ->front->dataoutput *****main menu**** insert delete peek display exit enter your option queue is empty enter your option types of queues queue data structure can be classified into the following types circular queue deque priority queue multiple queue we will discuss each of these queues in detail in the following sections circular queues in linear queueswe have discussed so far that insertions can be done only at one end called the rear and deletions are always done from the other end called the front look at the queue shown in fig figure linear queue herefront and rear