C++ program to implement the deque (double ended queue) ADT using a double linked list

Here is the C++ program to implement Double ended queue ADT using a double linked list..!

 

#include<iostream>
#include<conio.h>
#include<stdlib.h>
using namespace std;

class node
{
public:
int data;
class node *next;
class node *prev;
};

class dqueue: public node
{
node *head,*tail;
int top1,top2;
public:
dqueue()
{
top1=0;
top2=0;
head=NULL;
tail=NULL;
}
void push(int x){
node *temp;
int ch;
if(top1+top2 >=5)
{
cout <<"dqueue overflow";
return ;
}
if( top1+top2 == 0)
{
head = new node;
head->data=x;
head->next=NULL;
head->prev=NULL;
tail=head;
top1++;
}
else
{
cout <<" Add element 1.FIRST 2.LAST\n enter ur choice:";
cin >> ch;


if(ch==1)
{
top1++;
temp=new node;
temp->data=x;
temp->next=head;
temp->prev=NULL;
head->prev=temp;
head=temp;
}
else
{
top2++;
temp=new node;
temp->data=x;
temp->next=NULL;
temp->prev=tail;
tail->next=temp;
tail=temp;
}

}
}
void pop()
{
int ch;
cout <<"Delete 1.First Node 2.Last Node\n Enter ur choice:";
cin >>ch;
if(top1 + top2 <=0)
{
cout <<"\nDqueue under flow";
return;
}
if(ch==1)
{
head=head->next;
head->prev=NULL;
top1--;
}
else
{
top2--;
tail=tail->prev;
tail->next=NULL;
}
}



void display()
{
int ch;
node *temp;
cout <<"display from 1.Staring 2.Ending\n Enter ur choice";
cin >>ch;
if(top1+top2 <=0)
{
cout <<"under flow";
return ;
}
if (ch==1)
{
temp=head;
while(temp!=NULL)
{
cout << temp->data <<" ";
temp=temp->next;
}
}
else
{
temp=tail;
while( temp!=NULL)
{
cout <<temp->data << " ";
temp=temp->prev;
}
}
}
};

main()
{
dqueue d1;
int ch;
while (1){
cout <<"1.INSERT 2.DELETE 3.DISPLAU 4.EXIT\n Enter ur choice:";
cin >>ch;
switch(ch)
{
case 1: cout <<"enter element";
cin >> ch;
d1.push(ch); break;
case 2: d1.pop(); break;
case 3: d1.display(); break;
case 4: exit(1);
}
}}



OUTPUT



1.INSERT 2.DELETE 3.DISPLAU 4.EXIT



Enter ur choice:1



enter element4



1.INSERT 2.DELETE 3.DISPLAU 4.EXIT



Enter ur choice:1



enter element5



Add element 1.FIRST 2.LAST



enter ur choice:1



1.INSERT 2.DELETE 3.DISPLAU 4.EXIT



Enter ur choice:1



enter element6



Add element 1.FIRST 2.LAST



enter ur choice:2



1.INSERT 2.DELETE 3.DISPLAU 4.EXIT



Enter ur choice:3



display from 1.Staring 2.Ending



Enter ur choice1



5 4 6 1.INSERT 2.DELETE 3.DISPLAU 4.EXIT



Enter ur choice:2



Delete 1.First Node 2.Last Node



Enter ur choice:1



1.INSERT 2.DELETE 3.DISPLAU 4.EXIT



Enter ur choice:3



display from 1.Staring 2.Ending



Enter ur choice1



4 6 1.INSERT 2.DELETE 3.DISPLAU 4.EXIT



Enter ur choice:4

Share this post
  • Share to Facebook
  • Share to Twitter
  • Share to Google+
  • Share to Stumble Upon
  • Share to Evernote
  • Share to Blogger
  • Share to Email
  • Share to Yahoo Messenger
  • More...
 
Posts RSSComments RSSBack to top
© 2013 Updated Tech News Results and Reviews