Deletion at beginning in the Circular linked list
C function for Deletion at beginning in Circular linked list
void delete_first(struct link *node)
{
node=start->next;
ptr=start;
if(i==0)
{
printf("\n List is empty");
exit(0);
}
ptr->next=node->next;
free(node);
i--;
}

After Deletion

Deletion at beginning in Circular linked list
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
struct link
{
int data;
struct link *next;
};
int i=0;
struct link *node,*start,*ptr,*new1;
void create_link(struct link *node)
{
char ch;
start->next=NULL;
node=start;
fflush(stdin);
printf("\n Enter 'n' for break:");
ch=getchar();
while(ch!='n')
{
node->next=(struct link *)malloc(sizeof(struct link));
node=node->next;
printf("\n Enter data for node:");
scanf("%d",&node->data);
node->next=start;
fflush(stdin);
printf("\n Enter 'n' for break:");
ch=getchar();
i++;
}
}
void delete_first(struct link *node)
{
node=start->next;
ptr=start;
if(i==0)
{
printf("\n List is empty");
exit(0);
}
ptr->next=node->next;
free(node);
i--;
}
void display(struct link *node)
{
int count;
node=start->next;
count=i;
while(count)
{
printf("\t%d",node->data);
node=node->next;
count--;
}
}
void main()
{
char ch;
clrscr();
create_link(node);
delete_first(node);
printf("List Item Are:\n");
display(node);
getch();
}
Output

