//hi friends this is a perfectly executed dequeue program earlier errors have been corrected
#include<iostream.h>
#include<conio.h>
#include<stdlib.h>
#define NULL 0
template<class t>
class dq
{
struct node
{
t data;
struct node *flink;
struct node *rlink;
};
typedef struct node node;
int front,rear,cnt;
struct node *cur,*fnode,*lnode,*temp;
public:
dq()
{
front=rear=-1;
cnt=0;
fnode=lnode=NULL;
}
void inslft(t item)
{
#include<conio.h>
#include<stdlib.h>
#define NULL 0
template<class t>
class dq
{
struct node
{
t data;
struct node *flink;
struct node *rlink;
};
typedef struct node node;
int front,rear,cnt;
struct node *cur,*fnode,*lnode,*temp;
public:
dq()
{
front=rear=-1;
cnt=0;
fnode=lnode=NULL;
}
void inslft(t item)
{
cur=fnode;
for(int i=0;i<cnt-1;i++)
cur=cur->flink;
temp=new node;
temp->data=item;
temp->flink=NULL;
temp->rlink=NULL;
if(rear==-1)
{
fnode=temp;
front++;
}
else
{
cur->flink=temp;
temp->rlink=cur;
lnode=temp;
}
rear++;
cnt++;
}
void insrt(t item)
{
cur=lnode;
for(int i=0;i<cnt-1;i++)
cur=cur->rlink;
temp=new node;
temp->data=item;
temp->flink=NULL;
temp->rlink=NULL;
if(front==-1)
{
lnode=temp;
rear++;
}
else
{
cur->rlink=temp;
temp->flink=cur;
fnode=temp;
}
front++;
cnt++;
}
void remvlft()
{
if(front<0)
{
cout<<"dequeue is empty";
return;
}
cur=fnode;
cout<<"the deleted element="<<cur->data;
fnode=cur->flink;
fnode->rlink=NULL;
delete cur;
cnt--;
rear--;
if(rear==-1)
front=-1;
}
void remvrt( )
{
if(rear<0) {
cout<<"dequeue is empty";
return;
}
cur=lnode;
cout<<"the deleted element="<<cur->data;
lnode=cur->rlink;
lnode->flink=NULL;
delete cur;
cnt--;
front--;
if(front==-1)
rear=-1;
}
void displ2r( )
{
if(cnt==0){
cout<<"dequeue is empty \n";
return;
}
cout<<"the element of dequeue are \n";
cur=fnode;
while(cur!=NULL)
{
cout<<cur->data<<" ";
cur=cur->flink;
}
}
void dispr2l( )
{
if(cnt==0) {
cout<<"dequeue empty";
return;
}
cout<<"the elements are \n:";
cur=lnode;
while(cur!=NULL)
{
cout<<cur->data<<" ";
cur=cur->rlink;
}
}
void size( )
{
if(cnt==0)
{
cout<<"dequeue is empty \n";
return;
}
cout<<"the size of dq="<<cnt;
}
};
void main()
{
dq<int>q;
int ch,element;
while(1)
{
clrscr();
cout<<"main menu \n";
cout<<"1.insert node at left end \n";
cout<<"2.insert node at right end \n";
cout<<"3.delete node at left end";
cout<<"\n4.delete node at right end";
cout<<"\n5.display dq form left to right";
cout<<"\n6.display dq from right to left";
cout<<"\n7.size";
cout<<"8.exit";
cout<<"\nEnter your choice \n";
cin>>ch;
switch(ch)
{
case 1:
cout<<"enter new element \n";
cin>>element;
q.inslft(element);
getch();
break;
case 2:
cout<<"enter new element";
cin>>element;
q.insrt(element);
getch();
break;
case 3:
q.remvlft();
//cout<<"deleted element";
getch();
break;
case 4:
q.remvrt();
//cout<<"deleted element"<<element;
getch();
break;
case 5:
q.displ2r();
getch();
break;
case 6:
q.dispr2l();
getch();
break;
case 7:
q.size();
getch();
break;
case 8:
exit(0);
}
}
getch( );
}
for(int i=0;i<cnt-1;i++)
cur=cur->flink;
temp=new node;
temp->data=item;
temp->flink=NULL;
temp->rlink=NULL;
if(rear==-1)
{
fnode=temp;
front++;
}
else
{
cur->flink=temp;
temp->rlink=cur;
lnode=temp;
}
rear++;
cnt++;
}
void insrt(t item)
{
cur=lnode;
for(int i=0;i<cnt-1;i++)
cur=cur->rlink;
temp=new node;
temp->data=item;
temp->flink=NULL;
temp->rlink=NULL;
if(front==-1)
{
lnode=temp;
rear++;
}
else
{
cur->rlink=temp;
temp->flink=cur;
fnode=temp;
}
front++;
cnt++;
}
void remvlft()
{
if(front<0)
{
cout<<"dequeue is empty";
return;
}
cur=fnode;
cout<<"the deleted element="<<cur->data;
fnode=cur->flink;
fnode->rlink=NULL;
delete cur;
cnt--;
rear--;
if(rear==-1)
front=-1;
}
void remvrt( )
{
if(rear<0) {
cout<<"dequeue is empty";
return;
}
cur=lnode;
cout<<"the deleted element="<<cur->data;
lnode=cur->rlink;
lnode->flink=NULL;
delete cur;
cnt--;
front--;
if(front==-1)
rear=-1;
}
void displ2r( )
{
if(cnt==0){
cout<<"dequeue is empty \n";
return;
}
cout<<"the element of dequeue are \n";
cur=fnode;
while(cur!=NULL)
{
cout<<cur->data<<" ";
cur=cur->flink;
}
}
void dispr2l( )
{
if(cnt==0) {
cout<<"dequeue empty";
return;
}
cout<<"the elements are \n:";
cur=lnode;
while(cur!=NULL)
{
cout<<cur->data<<" ";
cur=cur->rlink;
}
}
void size( )
{
if(cnt==0)
{
cout<<"dequeue is empty \n";
return;
}
cout<<"the size of dq="<<cnt;
}
};
void main()
{
dq<int>q;
int ch,element;
while(1)
{
clrscr();
cout<<"main menu \n";
cout<<"1.insert node at left end \n";
cout<<"2.insert node at right end \n";
cout<<"3.delete node at left end";
cout<<"\n4.delete node at right end";
cout<<"\n5.display dq form left to right";
cout<<"\n6.display dq from right to left";
cout<<"\n7.size";
cout<<"8.exit";
cout<<"\nEnter your choice \n";
cin>>ch;
switch(ch)
{
case 1:
cout<<"enter new element \n";
cin>>element;
q.inslft(element);
getch();
break;
case 2:
cout<<"enter new element";
cin>>element;
q.insrt(element);
getch();
break;
case 3:
q.remvlft();
//cout<<"deleted element";
getch();
break;
case 4:
q.remvrt();
//cout<<"deleted element"<<element;
getch();
break;
case 5:
q.displ2r();
getch();
break;
case 6:
q.dispr2l();
getch();
break;
case 7:
q.size();
getch();
break;
case 8:
exit(0);
}
}
getch( );
}
Love shopping? Click here to find the best shops in every city.
1 comment:
hiiiii dinesh your plan was very goodd it helped me a lot
Post a Comment