188. Implement Stack using Queues?
Microsoft Interview Questions and Answers
(Continued from previous question...)
188. Implement Stack using Queues?
Question:
Implement Stack using Queues?
maybe an answer:
#include <iostream>
#include <stdio.h>
#define max 5
using namespace std;
class queue
{
int front;
int rear;
int data[max];
public:
queue()
{
front = 0;
rear = 0;
}
void enQueue(int i)
{
if( rear == max )
return ;
data[rear++] = i;
}
int deQueue()
{
if( front == rear )
{
return -1;
}
return data[front++];
}
void disp()
{
cout<<"Front ="<<front<<" Rear = "<<rear<<endl;
}
int size()
{
return rear;
}
int reSet()
{
front = 0;
rear = 0;
}
};
class stack
{
queue q;
public:
void push( int i)
{
if( q.size() == max )
{
cout<<"Stack is full"<<endl;
return ;
}
q.enQueue(i);
}
int pop()
{
int ret = 0;
int result = 0;
queue temp;
int c = 0;
while( ( ret = q.deQueue() ) != -1)
{
temp.enQueue(ret);
result = ret;
}
q.reSet();
int size = temp.size();
if( size == 0 )
{
cout<<"stack is empty " <<endl;
return -1;
}
else
{
size--;
}
while(size--)
q.enQueue(temp.deQueue());
temp.reSet();
return result;
}
void disp()
{
q.disp() ;
}
};
(Continued on next question...)
Other Interview Questions
|