problem 25(circular link list insert delete)
#include<stdio.h>
struct node
{
int data;
struct node *next;
};
struct node *last=NULL;
void insertatbegin(int val)
{
struct node *temp;
temp=(struct node*)malloc(sizeof(struct node));
if(last==NULL)
{
temp->data=val;
temp->next=temp;
last=temp;
}
else
{
temp->data=val;
temp->next=last->next;
last->next=temp;
}
}
void insertatend(int val)
{
struct node *temp;
temp=(struct node*)malloc(sizeof(struct node));
if(last==NULL)
{
temp->data=val;
temp->next=temp;
last=temp;
}
else
{
temp->data=val;
temp->next=last->next;
last->next=temp;
last=temp;
}
}
void traverselist()
{
struct node *temp;
if(last==NULL)
{
printf("Empty\n");
}
else
{
temp=last->next;
while(1)
{
printf("%d ",temp->data);
temp=temp->next;
if(temp==last->next)break;
}
printf("\n");
}
}
void deletebegin()
{
last->next=last->next->next;
}
void deleteend()
{
struct node *temp;
temp=last->next;
while(temp->next!=last)
{
temp=temp->next;
}
temp->next=temp->next->next;
}
int main()
{
/*insertatbegin(10);
insertatbegin(20);
insertatbegin(30);
insertatbegin(40);
traverselist();*/
insertatend(10);
insertatend(20);
insertatend(30);
insertatend(40);
insertatend(50);
insertatend(60);
traverselist();
deletebegin();
traverselist();
deletebegin();
traverselist();
deleteend();
traverselist();
return 0;
}
0 Comments