Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 3

DYNAMIC QUEUE IMPLEMENTATION

#include <iostream>
using namespace std;

struct node
{
int Data;
node* next;
};
class queue
{
private:
node* front;
node* rear;

public:
queue()
{
front = NULL;
rear = NULL;
}
queue(const queue & k)
{
node *temp = k.front;
front = NULL;
rear = NULL;
while (temp != NULL)
{
enqueue(temp->Data);
temp = temp->next;
}
}
void enqueue(int val)
{
node *m = new node;
m->next = NULL;
(*m).Data = val;
if (isEmpty())
{
front = m;
rear = m;
}
else
{
rear->next = m;
rear = m;
m->next = NULL;
}
}
void dequque()

{
node * temp = front;
if (isEmpty())
{
cout << "Queue is Empty" << endl;
}
else
{
if (front == rear)
{
rear = NULL;
}
cout << temp->Data << endl;
front = front -> next;
delete temp;
}
}

bool isEmpty()
{
if (front == NULL)
{
return 1;
}
else
{
return 0;
}
}
~queue()

{
node* temp, *curr;
temp = front;

while (temp != NULL)


{
curr = temp;
temp = (*temp).next;
delete curr;
}
}
};
int main()
{
queue myQueue;
myQueue.enqueue(1);
myQueue.enqueue(2);
myQueue.enqueue(3);
myQueue.enqueue(4);
myQueue.enqueue(5);
myQueue.dequque();
myQueue.enqueue(6);
myQueue.dequque();
myQueue.dequque();
myQueue.dequque();
myQueue.dequque();
myQueue.dequque();
myQueue.dequque();
myQueue.enqueue(7);
myQueue.enqueue(8);
system("pause");
return 0;

You might also like