The Queue is a special memory structure with accesses limited to PUSH and POP operations which result in a firstinfirstout (FIFO) access. The Stack is a related memory structure which also has two operations PUSH and POP, but unlike the Queue, the POP operation results in the data value entered using the most recent PUSH operation. This results in a lastinfirstout (LIFO) access. Implementing a queue treats the memory as a circle. How would you modify this design to implement a Stack? How are the Stack Empty and Stack conditions checked? Solution we can Implement stack with using 2 Queues. In this the first method we ensure that the new entry of element is always at top of queue1 , so that the pop operation just dequeue from queue 1. We here are using the other queue \"queue2\" to make sure that the new element is always at the top of queue1. Below is the operation of the implemented stack: PUSH : step 1 : Enqueue element to Queue2. step 2 : Now gradually dequeueing each element from Queue1 and enqueue to Queue2. step 3 : Interchanging the name of the Queues with each other. So that we can dont allow one more movement of all elements from Queue2 Queue1. POP : step 1 : Dequeue a element from Queue1 and return it. STACK_EMPTY : step 1 : we can check that by cheking the state of Queue1 , if it is empty than the stack is empty..