Professional Documents
Culture Documents
#include <bits/stdc++.h>
struct Node
int data;
newNode->data = data;
return newNode;
};
class Deque
{
Node* front;
Node* rear;
int Size;
public:
Deque()
Size = 0;
// Operations on Deque
void deleteFront();
void deleteRear();
int getFront();
int getRear();
int size();
bool isEmpty();
void erase();
};
// is empty or not
bool Deque::isEmpty()
int Deque::size()
return Size;
if (newNode == NULL)
else
{
// If deque is empty
if (front == NULL)
else
newNode->next = front;
front->prev = newNode;
front = newNode;
Size++;
if (newNode == NULL)
else
// If deque is empty
if (rear == NULL)
else
newNode->prev = rear;
rear->next = newNode;
rear = newNode;
Size++;
void Deque::deleteFront()
{
// If deque is empty then
// 'Underflow' condition
if (isEmpty())
else
front = front->next;
if (front == NULL)
rear = NULL;
else
front->prev = NULL;
free(temp);
Size--;
void Deque::deleteRear()
// 'Underflow' condition
if (isEmpty())
else
rear = rear->prev;
if (rear == NULL)
front = NULL;
else
rear->next = NULL;
free(temp);
int Deque::getFront()
// garbage value
if (isEmpty())
return -1;
return front->data;
int Deque::getRear()
// garbage value
if (isEmpty())
return -1;
return rear->data;
// from Deque
void Deque::erase()
rear = NULL;
front = front->next;
free(temp);
Size = 0;
int main()
Deque dq;
dq.insertRear(5);
cout << "Insert element '10' at rear end\n";
dq.insertRear(10);
dq.deleteRear();
dq.insertFront(15);
dq.deleteFront();
return 0;
}
OUTPUT: