Interview Questions

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