Professional Documents
Culture Documents
Circular Single Linked List
Circular Single Linked List
h>
#include<conio.h>
struct node
int data;
};
void create();
void display();
void insert();
void del(int);
int isempty();
void create()
int x,i,n;
scanf("%d",&n);
scanf("%d",&x);
temp->data=x;
temp->next=NULL;
temp->prev=NULL;
1
head=temp;
for(i=1;i<n;i++)
scanf("%d",&x);
temp1->data=x;
temp1->next=NULL;
temp1->prev=temp;
temp->next=temp1;
temp=temp1;
display();
void display()
temp=head;
if(head==NULL)
{printf("LIST is EMPTY");
else
while(temp->next!=NULL)
printf("%d<===>",temp->data);
2
temp=temp->next;
printf("%d",temp->data);
void insert()
int ch,x,y;
scanf("%d",&x);
scanf("%d",&ch);
switch(ch)
case 1:
temp->data=x;
temp->next=head;
temp->prev=NULL;
head->prev=temp;
head=temp;
display();
break;
case 2:
3
scanf("%d",&y);
temp=head;
while(temp->data!=y)
temp=temp->next;
temp1->data=x;
temp1->next=temp->next;
temp1->prev=temp;
temp->next->prev=temp1;
temp->next=temp1;
display();
break;
case 3:
temp=head;
while(temp->next!=NULL)
temp=temp->next;
temp1->data=x;
temp1->next=NULL;
temp1->prev=temp;
temp->next=temp1;
display();
4
break;
default:
void del(int x)
temp=head;
if(head->data==x)
{ head=head->next;
head->prev=NULL;
free(temp);
else
{ while(temp->data!=x &&temp->next!=NULL)
{ temp1=temp;
temp=temp->next;
if( temp->data==x)
{temp1->next=temp->next;
temp->next->prev=temp1;
free(temp);
5
}
display();
int isempty()
if(head==NULL)
return 1;
else
return 0;
void main()
int ch,a;
clrscr();
create();
do
scanf("%d",&ch);
switch(ch)
case 1:
insert();
6
break;
case 2:
if(!isempty())
scanf("%d",&a);
del(a);
else
printf("\nLIST is EMPTY");
break;
default:
}while(ch!=0);
getch();