Untitled

                Never    
C++
       
#include <iostream>
#include <queue>

class StackUsingQueues {
private:
    std::queue<int> queue1;
    std::queue<int> queue2;

public:
    void push(int val) {
        queue1.push(val);
    }

    int pop() {
        if (queue1.empty())
            return -1;  // Stack is empty

        while (queue1.size() > 1) {
            queue2.push(queue1.front());
            queue1.pop();
        }

        int popped = queue1.front();
        queue1.pop();

        queue1.swap(queue2);
        return popped;
    }

    int peek() {
        if (queue1.empty())
            return -1;  // Stack is empty

        while (queue1.size() > 1) {
            queue2.push(queue1.front());
            queue1.pop();
        }

        int top_element = queue1.front();
        queue2.push(queue1.front());
        queue1.pop();

        queue1.swap(queue2);
        return top_element;
    }

    bool isEmpty() {
        return queue1.empty();
    }
};

int main() {
    StackUsingQueues stack;
    stack.push(1);
    stack.push(2);
    stack.push(3);

    std::cout << stack.pop() << std::endl;  // Output: 3
    std::cout << stack.pop() << std::endl;  // Output: 2

    return 0;
}

Raw Text