can someone help?
how to implement the main queue functions Enque() and Deque() using two stacks S1 & S2?
You allowed only to call push () and pop() functions of the two stacks to implement Enque()and Deque() functions.
are you using standard library stacks, or a self-built stack?
Last edited on
standard ones
Something like that?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
|
#include <iostream>
#include <stack>
template<typename T>
class double_stack_queue
{
std::stack<T> S1;
std::stack<T> S2;
public:
void enqueue(const T& in)
{
S1.push(in);
}
T dequeue() //Does not works like standard queue
{
while(!S1.empty()) {
S2.push(S1.top());
S1.pop();
}
T temp = S2.top();
S2.pop();
while(!S2.empty()) {
S1.push(S2.top());
S2.pop();
}
return temp;
}
};
int main()
{
double_stack_queue<int> foo;
foo.enqueue(5);
foo.enqueue(7);
foo.enqueue(10);
std::cout << foo.dequeue();
}
|
thanks a lot
Topic archived. No new replies allowed.