Deletion at given position in Doubly Linked list by R4R Team

Example:
Linked list is:3->4->1->9
Deletion at third position
Linked list become: 3->4->9

program-

#include< stdio.h>
#include< conio.h>
#include< alloc.h>
struct node
{
int data;
struct node *next;
};
struct node *first;

void create()
{
struct node *ptr,*cpt;
char ch;
cpt=(struct node*)malloc(sizeof(struct node));
printf("Enter Number\n");
scanf("%d",&cpt->data);
first=cpt;
do
{
ptr=(struct node*)malloc(sizeof(struct node));
printf("Enter Number\n");
scanf("%d",&ptr->data);
cpt->next=ptr;
cpt=ptr;
printf("Continue(y/n)?n");
ch=getch();
}while(ch=='y');
cpt->next=first;
}

void traverse()
{
struct node *ptr=first;
printf("Linklist is :\n");
while(ptr->next!=first)
{
printf("%d ",ptr->data);
ptr=ptr->next;
}
printf("%d",ptr->data);
}

void del()
{
int pos,i;
struct node *cpt,*ptr=first;
printf("Enter position to delete\n");
scanf("%d",&pos);
for(i=0;i< pos-1;i++)
{
cpt=ptr;
ptr=ptr->next;
}
cpt->next=ptr->next;
free(ptr);
}

void main()
{
clrscr();
create();
traverse();
del();
printf("After deletion\n");
traverse();
getch();
}


output-


Enter Number
2
Enter Number
4
Continue(y/n)?
Enter Number
1
Continue(y/n) ?
Enter Number
9
Continue(y/n) ?
Enter Number
0
Continue(y/n) ?
Linklist is :
2 4 1 9 0
Enter position to delete
3
After deletion
Linklist is :
2 4 9 0

-In this program, we have a three function create(), traverse() and del()
-create() function are used to create a Circular Linked List
-traverse() function are used to traverse the circular linked list.
-del() function are used to delete the item at given position in the linked list.




Leave a Comment:
Search
R4R Team
R4Rin Top Tutorials are Core Java,Hibernate ,Spring,Sturts.The content on R4R.in website is done by expert team not only with the help of books but along with the strong professional knowledge in all context like coding,designing, marketing,etc!