struct Queue { stack<int> s1, s2; // Enqueue an item to the queue void enQueue(int x) { // Push item into the first stack s1.push(x); } // Dequeue an item from the queue int deQueue() { // if both stacks are empty if (s1.empty() && s2.empty()) { return -1; } // if s2 is empty, move // elements from s1 if (s2.empty()) { while (!s1.empty()) { s2.push(s1.top()); s1.pop(); } } // return the top item from s2 int x = s2.top(); s2.pop(); return x; } };
Preview:
downloadDownload PNG
downloadDownload JPEG
downloadDownload SVG
Tip: You can change the style, width & colours of the snippet with the inspect tool before clicking Download!
Click to optimize width for Twitter