/*queue.h*/
#ifndef QUEUE_H_
#define QUEUE_H_
typedef struct node1
{
int data;
node1* next;
}node;
class Queue
{
private:
node *front;
node *rear;
int index;
int size;
public:
Queue(int s=5);
~Queue();
void enqueue(int data);
void dequeue(int d);
bool isfull();
bool isempty();
void show();
};
#endif QUEUE_H_
/*queue.cpp*/
#include"queue.h"
#include<iostream>
using namespace std;
Queue::Queue(int s)
{
s=size;
front=rear=NULL;
index=0;
}
Queue::~Queue()
{
node *temp;
while(front!=NULL)
{
temp=front;
front=front->next;
delete temp;
}
}
bool Queue::isempty()
{
if(index==0)
return true;
else
return false;
}
bool Queue::isfull()
{
if(index==size)
return true;
else
return false;
}
void Queue::enqueue(int data)
{
if(isfull()==true)
{
cout<<"there is no space"<<endl;
return;
}
node *a=new node;
if(a==NULL)
return;
a->data=data;
a->next=NULL;
index=index+1;
if(front==NULL)
front=a;
else
rear->next=a;
rear=a;
cout<<data<<"has enqueue"<<endl;
}
void Queue::dequeue(int d)
{
if(isempty()==true)
{
cout<<"it is a empty queue"<<endl;
return;
}
d=front->data;
index--;
node *temp=front;
front=front->next;
delete temp;
if(index=0)
rear=NULL;
cout<<d<<"has benn dequeue"<<endl;
}
void Queue::show()
{
node *temp;
for(temp=front;temp->next!=NULL;temp=temp->next)
{
cout<<temp->data<<" ";
}
cout<<endl;
}
/*main.cpp*/
#include"queue.h"
void main()
{
Queue *q=new Queue(6);
q->enqueue(5);
q->enqueue(6);
q->enqueue(8);
q->enqueue(2);
q->enqueue(4);
q->enqueue(9);
q->dequeue(5);
q->show();
}