Include
Include
#include<stdio.h>
#include<stdlib.h>
void create();
void display();
void insert_beg();
void insert_end();
void insert_pos();
void delete_beg();
void delete_end();
void delete_pos();
void search();
{ int data;
} sn;
sn *head=NULL;
int main()
int ch;
while(1)
printf("\n________________________________\n");
printf("________________________________\n");
scanf("%d",&ch);
switch(ch)
case 1:
create();
break;
case 2:
display();
break;
case 3:
insert_beg();
break;
case 4:
insert_end();
break;
case 5:
insert_pos();
break;
case 6:
delete_beg();
break;
case 7:
delete_end();
break;
case 8:
delete_pos();
break;
case 9:
search();
break;
case 10:
exit(0);
break;
default:
break;
void create()
sn *s,*p;
s = (sn*)malloc(sizeof(sn));
if(s == NULL)
printf("\nout of memory");
return;
scanf("%d",&s->data);
s->next=NULL;
if (head==NULL)
head = s;
s->next = head;
else
p = head;
while(p->next != head)
p = p->next;
p->next = s;
s->next = head;
void display()
sn *p;
if (head == NULL)
printf("\nlist is empty");
return;
else
p = head;
do
printf("\t%d", p->data);
p = p->next;
} while (p != head);
}
void search()
sn *p;
int item,i=1;
if (head == NULL)
printf("\nlist is empty");
return;
else
p=head;
scanf("%d",&item);
while(p!= NULL)
if(p->data == item)
return;
p = p->next;
i++;
void insert_beg()
sn *s, *p;
s = (sn *)malloc(sizeof(sn));
if (s == NULL)
printf("\nout of memory");
return;
}
scanf("%d", &s->data);
s->next = NULL;
if (head == NULL)
head = s;
head->next = head;
else
p = head;
p = p->next;
p->next = s;
s->next = head;
head = s;
void insert_end()
sn *s, *p;
s = (sn *)malloc(sizeof(sn));
if (s == NULL)
printf("\nout of memory");
return;
scanf("%d", &s->data);
s->next = NULL;
if (head == NULL)
head = s;
head->next = head;
}
else
p = head;
p = p->next;
p->next = s;
s->next = head;
void insert_pos()
sn *s,*p;
int i,pos;
s = (sn*)malloc(sizeof(sn));
if(s == NULL)
printf("\nout of memory");
return;
scanf("%d",&pos);
scanf("%d",&s->data);
s->next = NULL;
if(pos==1)
s->next=head;
head = s;
else
for(i=1,p=head;i<pos-1;i++)
p=p->next;
if(p==NULL)
return;
s->next=p->next;
p->next= s;
void delete_beg()
sn *p;
if (head == NULL)
printf("\nlist is empty");
return;
else
p=head;
head=head->next;
free(p);
void delete_end()
sn *s,*p;
if (head == NULL)
printf("\nlist is empty");
return;
{
p=head;
head=NULL;
free(p);
else
p=head;
while(p->next!=head)
s=p;
p=p->next;
s->next= head;
free(p);
void delete_pos()
sn *s, *p;
int i, pos;
if (head == NULL)
printf("\nlist is empty");
return;
else
scanf("%d", &pos);
if (pos == 1)
p = head;
if (head->next == head)
head = NULL;
else
head = head->next;
p->next = NULL;
free(p);
else
p = head;
s = p;
p = p->next;
if (p == head)
return;
s->next = p->next;
free(p);
}
Output :
________________________________
1. create
2. display
3. insert at beginning
4. insert at end
5. insert at position
6. delete at beginning
7. delete at end
8. delete at position
9. search
10. exit
________________________________
________________________________
________________________________
________________________________
________________________________
________________________________
________________________________
________________________________