Data Structure Using C++
Queue Data Structure
Double Ended Queue Using Linked List
class queue
{
private:
node *front;
node *rear;
public:
queue();
void enqueueAtFront(int );
void enqueueAtRear(int );
int dequeueAtFront();
int dequeueAtRear();
int getFront();
int getRear();
int isEmpty();
};
queue::queue()
{
front=NULL;
rear=NULL;
}
void queue::enqueueAtRear(int val)
{
node* newNode = new node(val);
if(this->isEmpty()){
front=newNode;
rear=newNode;
}else{
rear->setNext(newNode);
rear = newNode;
}
}
void queue::enqueueAtFront(int val)
{
node* newNode = new node(val);
if(this->isEmpty()){
front=newNode;
rear=newNode;
}else{
newNode->setNext(front);
front = newNode;
}
}
int queue::dequeueAtRear()
{
if(!isEmpty()){
int x = rear->get();
node *ptr;
ptr=front;
while(ptr->getNext()!=rear)
{
ptr=ptr->getNext();
}
ptr->setNext(NULL);
rear=ptr;
return x;
}
}
int queue::dequeueAtFront()
{
if(!isEmpty()){
int x = front->get();
front = front->getNext();
return x;
}
}
int queue::getFront()
{
if(!isEmpty())
{
return front->get();
}
else
{
cout<<"queue is empty."<<endl;
}
}
int queue::getRear()
{
if(!isEmpty())
{
return rear->get();
}
else
{
cout<<"queue is empty."<<endl;
}
}
int queue::isEmpty()
{
return (front==NULL);
}
int main ()
{
queue q;
q.enqueueAtRear(2);
cout<<q.getFront()<<endl;
q.enqueueAtFront(5);
cout<<q.getFront()<<endl;
q.enqueueAtFront(6);
cout<<q.getFront()<<endl;
q.dequeueAtRear();
cout<<q.getRear()<<endl;
q.dequeueAtFront();
cout<<q.getFront()<<endl;
}
Let me know in the comment section if you have any question.
Previous Post:
Priority Queue Using Linked List In Data Structure Using C++
Comments
Post a Comment