#include< iostream > #include< stack > | |
using namespace std; | |
stack<int> s1, s2; | |
void enqueue(int data) | |
{ | |
while(!s1.empty()) { | |
s2.push(s1.top()); | |
s1.pop(); | |
} | |
s1.push(data); | |
while(!s2.empty()) { | |
s1.push(s2.top()); | |
s2.pop(); | |
} | |
} | |
void dequeue() | |
{ | |
if(!s1.empty()) { | |
s1.pop(); | |
} | |
} | |
int front() | |
{ | |
return s1.top(); | |
} | |
bool isEmpty() | |
{ | |
return s1.size() == 0; | |
} | |
int size() | |
{ | |
return s1.size(); | |
} | |
void printData() | |
{ | |
while(!s1.empty()) { | |
cout << s1.top() << " "; | |
s1.pop(); | |
} | |
cout << endl; | |
} | |
int main() | |
{ | |
int n, m, k; | |
cin >> n; | |
for(int i = 0; i < n; i++) { | |
cin >> k; | |
enqueue(k); | |
} | |
cout << "Queue is empty : " << (isEmpty()?"True":"False") << endl; | |
cout << "Queue front element : " << front() << endl; | |
dequeue(); | |
cout << "Queue size : " << size() << endl; | |
enqueue(12); | |
enqueue(6); | |
cout << "Queue new size : " << size() << endl; | |
cout << "Queue new element are : "; | |
printData(); | |
cout << "Queue is empty : " << (isEmpty()?"True":"False") << endl; | |
return 0; | |
} |
Saturday, September 14, 2019
Implement queue using two stack in cpp
Queue implement by array in c++
#include< iostream > using namespace std; int front = 0, rear = 0; | |
void enqueue(int queue[], int element, int arrSize) | |
{ | |
if(rear != arrSize){ | |
queue[rear] = element; | |
rear++; | |
} | |
} | |
void dequeue(int queue[]) | |
{ | |
if(front != rear){ | |
queue[front] = 0; | |
front++; | |
} | |
} | |
int frontData(int queue[]) | |
{ | |
return queue[front]; | |
} | |
int size() | |
{ | |
return rear - front; | |
} | |
bool isEmpty() | |
{ | |
return front == rear; | |
} | |
int main() | |
{ | |
int n, k; | |
cin >> n; | |
int queue[n+1]; | |
for(int i = 0; i < n; i++){ | |
cin >> k; | |
enqueue(queue, k, n); | |
} | |
cout << "Queue size : " << size() << endl; | |
cout << "Queue first element = " << frontData(queue) << endl; | |
dequeue(queue); | |
cout << "Queue new first element = " << frontData(queue) << endl; | |
cout << "Queue is empty = " << (isEmpty()? "True":"False") << endl; | |
cout << "Queue data are : " ; | |
while(!isEmpty()) { | |
cout << frontData(queue) << " "; | |
dequeue(queue); | |
} | |
cout << endl; | |
cout << "Queue is empty = " << (isEmpty()? "True":"False") << endl; | |
return 0; | |
} |
Subscribe to:
Posts (Atom)