#include<iostream>
#include<conio.h>
using namespace std;
struct circular
{
int i;
struct circular *front;
struct circular *back;
};
struct circular *temp;
struct circular *head;
struct circular *p;
struct circular *mid;
struct circular *move;
int cnt=0;
void create(void);
void insert(void);
void display(void);
void del(void);
//Creating a node
void create()
{
head=(struct circular *)malloc(sizeof(struct circular));
head->back=head;
head->front=head;
cout<<"ENETER THE DATA\n";
cin>>head->i;
temp=head;
temp->back=(struct circular *)malloc(sizeof(struct circular));
temp=temp->back;
temp->back=head;
head->front=temp;
cout<<"ENETER THE DATA\n";
cin>>temp->i;
}
//Displaying the list
void display()
{
p=head;
cout<<p->i;
p=p->back;
while(p!=head)
{
cout<<p->i;
p=p->back;
}
cout<<"\n";
}
//Inserting a new node
void insert()
{
int add,t;
cout<<"\n\t ENTER ANY NUMBER BETWEEN 1 AND %d\n"<<cnt;
cin>>add;
p=head;
t=1;
while(t<add)
{
p=p->back;
t++;
}
mid=(struct circular *)malloc(sizeof(struct circular));
cout<<"\n\n\nENETER THE DATA\n";
cin>>mid->i;
mid->back=p->back;
p->back=mid;
p->back->front=mid;
mid->front=p;
}
//Deleting a node
void del(void)
{
int add,t;
cout<<"\n\n\t ENTER ANY NUMBER BETWEEN 1 AND %d\n"<<cnt;
cin>>add;
p=head;
t=1;
while(t<add-1)
{
p=p->back;
t++;
}
mid=p->back;
p->back=mid->back;
mid->back->front=p;
free(mid);
}
//Calling in main()
int main()
{
int ch=0;
while(ch!=5)
{
cout<<"\n1.CREATE";
cout<<"\n2.INSERT";
cout<<"\n3.DELETE";
cout<<"\n4.DISPLAY";
cout<<"\n5.EXIT\n";
cin>>ch;
if(ch==1)
{
create();
cnt++;
cnt++;
}
if(ch==2)
{
insert();
cnt++;
}
if(ch==3)
{
del();
cnt--;
}
if(ch==4)
{
display();
}
if(ch==5)
{
break;
}
}
}
#include<conio.h>
using namespace std;
struct circular
{
int i;
struct circular *front;
struct circular *back;
};
struct circular *temp;
struct circular *head;
struct circular *p;
struct circular *mid;
struct circular *move;
int cnt=0;
void create(void);
void insert(void);
void display(void);
void del(void);
//Creating a node
void create()
{
head=(struct circular *)malloc(sizeof(struct circular));
head->back=head;
head->front=head;
cout<<"ENETER THE DATA\n";
cin>>head->i;
temp=head;
temp->back=(struct circular *)malloc(sizeof(struct circular));
temp=temp->back;
temp->back=head;
head->front=temp;
cout<<"ENETER THE DATA\n";
cin>>temp->i;
}
//Displaying the list
void display()
{
p=head;
cout<<p->i;
p=p->back;
while(p!=head)
{
cout<<p->i;
p=p->back;
}
cout<<"\n";
}
//Inserting a new node
void insert()
{
int add,t;
cout<<"\n\t ENTER ANY NUMBER BETWEEN 1 AND %d\n"<<cnt;
cin>>add;
p=head;
t=1;
while(t<add)
{
p=p->back;
t++;
}
mid=(struct circular *)malloc(sizeof(struct circular));
cout<<"\n\n\nENETER THE DATA\n";
cin>>mid->i;
mid->back=p->back;
p->back=mid;
p->back->front=mid;
mid->front=p;
}
//Deleting a node
void del(void)
{
int add,t;
cout<<"\n\n\t ENTER ANY NUMBER BETWEEN 1 AND %d\n"<<cnt;
cin>>add;
p=head;
t=1;
while(t<add-1)
{
p=p->back;
t++;
}
mid=p->back;
p->back=mid->back;
mid->back->front=p;
free(mid);
}
//Calling in main()
int main()
{
int ch=0;
while(ch!=5)
{
cout<<"\n1.CREATE";
cout<<"\n2.INSERT";
cout<<"\n3.DELETE";
cout<<"\n4.DISPLAY";
cout<<"\n5.EXIT\n";
cin>>ch;
if(ch==1)
{
create();
cnt++;
cnt++;
}
if(ch==2)
{
insert();
cnt++;
}
if(ch==3)
{
del();
cnt--;
}
if(ch==4)
{
display();
}
if(ch==5)
{
break;
}
}
}