You are on page 1of 2

#include<stdio.

h>
#include<conio.h>
struct node
{
int data;
struct node*link;
};
struct node*last=NULL;
void addscll()
{
struct node*tmp;
tmp=(struct node*)malloc(sizeof(struct node));
printf("Ente the data:");
scanf("%d",&tmp->data);
if(last==NULL)
{
last=tmp;
last->link=last;
}
else
{
tmp->link=last->link;
last->link=tmp;
last=tmp;
}
}
void deletescll()
{
struct node*cur;
if(last==NULL)
{
printf("\nlist doesnot exist\n");
}
else if(last->link==last)
{
free(last);
last=NULL;
printf("\nelement deleted\n");
}
else
{
cur=last->link;
while(cur->link!=last)
{
cur=cur->link;
}
cur->link=last->link;
free(last);
last=cur;
printf("\nelement deleted\n");
}
}
void display()
{
struct node*tmp;
if(last==NULL)
{
printf("\nlist doesnot exist\n");
}
else
{
tmp=last->link;
while(tmp->link!=last->link)
{
printf("%d\t",tmp->data);
tmp=tmp->link;
}
printf("%d",tmp->data);
}
}
void main()
{
int ch;
clrscr();
while(1)
{
printf("\nsingly circular linklist\n1.Add\n2.Delete\n3.Display\n4.Exit\
n");
printf("Enter your choice:");
scanf("%d",&ch);
switch(ch)
{
case 1:addscll();
break;
case 2:deletescll();
break;
case 3:display();
break;
case 4:exit(0);
break;
default:printf("Invalid choice");
}
}
}

You might also like