#include< iostream > using namespace std; | |
int queue[1001], front = 0, rear = 0; | |
void enqueueBack(int element, int n) | |
{ | |
if(rear != n) { | |
queue[rear] = element; | |
rear++; | |
} | |
} | |
void enqueueFront(int element, int n) | |
{ | |
if(rear != n) { | |
for(int i = rear; i > front; i--) { | |
queue[i] = queue[i-1]; | |
} | |
queue[front] = element; | |
rear++; | |
} | |
} | |
void dequeueBack() | |
{ | |
if(front != rear) { | |
queue[--rear] = 0; | |
} | |
} | |
void dequeueFront() | |
{ | |
if(front != rear){ | |
queue[front++] = 0; | |
} | |
} | |
int get_front() | |
{ | |
return queue[front]; | |
} | |
int get_back() | |
{ | |
return queue[rear-1]; | |
} | |
int size() | |
{ | |
return rear - front; | |
} | |
bool isEmpty() | |
{ | |
return front == rear; | |
} | |
int main() | |
{ | |
int n, k, m; | |
cin >> n >> m; | |
for(int i = 0; i < n; i++) { | |
cin >> k; | |
enqueueFront(k, n); | |
} | |
cout << "Queue element are :"; | |
for(int i = 0; i < n; i++) cout << queue[i] << " "; | |
cout << endl; | |
for(int i = 0; i < m; i++) { | |
cin >> k; | |
enqueueBack(k,n+m); | |
} | |
cout << "Queue element are :"; | |
for(int i = 0; i < n+m ; i++) cout << queue[i] << " "; | |
cout << endl; | |
cout <<"Queue size :" << size() << endl; | |
cout << "Queue is empty = " << (isEmpty()? "True":"False") << endl; | |
cout << "Queue front element = " << get_front() << endl; | |
cout << "Queue back element = " << get_back() << endl; | |
dequeueFront(); | |
dequeueBack(); | |
cout << "Queue new front element = " << get_front() << endl; | |
cout << "Queue new back element = " << get_back() << endl; | |
cout <<"Queue new size :" << size() << endl; | |
return 0; | |
} |
Showing posts with label implementation. Show all posts
Showing posts with label implementation. Show all posts
Saturday, September 14, 2019
Double ended queue in cpp
Implement queue using two stack in cpp
#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; | |
} |
Subscribe to:
Posts (Atom)