Doubly Linked List C Program
Doubly Linked List C Program
first=cur;
}
else
{
next=first;
while(c<pos)
{
prev=next;
next=prev->right;
c++;
}
prev->right=cur;
cur->right=next;
}
}
void delete()
{
int pos,c=1;
printf("\n enter position:");
scanf("%d",&pos);
if(first==NULL)
printf("\n list is empty \n");
else if(pos==1&&first>right==NULL)
{
printf("\n deleted element is
%d \n ",first->data);
free(first);
first=NULL;
}
else if(pos==1&&first->right!
=NULL)
{
cur=first;
first=first->right;
cur->right=NULL;
printf("\n deleted element is
%d \n",cur->data);
free(cur);
}
else
{
next=first;
while(c<pos)
cur=next;
next=next->right;
c++;
}
cur->right=next->right;
next->right=NULL;
next->left=NULL;
printf("\n deleted element
is %d \n",next->data);
free(next);
}
}
void display()
{
struct node *temp;
temp=first;
if(temp==NULL)
printf("List is Empty");
while(temp!=NULL)
{
printf("<- %d-> ",temp->data);
temp=temp->right;
}
}
void main()
{
int ch;
printf("\n\n double linked list");
do
{
printf("\n1.create\n2.delete\n3.display\n4.exit"
);
.
enter data12
enter the position1
<- 12-> <- 23->
1.create
2.delete
3.display
4.exit
enter your choice1
enter data34
}
Output:
$ ./a.out
double linked list
1.create
2.delete
3.display
4.exit
enter your choice1
enter the data:23
<- 23->
1.create
2.delete
3.display
4.exit
enter your choice1
enter the position3
<- 12-> <- 23-> <- 34->
1.create
2.delete
3.display
4.exit
enter your choice1
enter data33
enter the position3
<- 12-> <- 23-> <- 33-> <- 34->
1.create
2.delete
2.delete
3.display
4.exit
enter your choice2
enter position:3
deleted element is 33
<- 12-> <- 23-> <- 34->
1.create
2.delete
3.display
4.exit
enter your choice2
enter position:1
enter data12
enter data2
enter data34
enter position:2
deleted element is 34
<- 23-> <- 2->
1.create
2.delete
3.display
4.exit
enter your choice2
enter data33
enter position:2
deleted element is 2
<- 23->
1.create
3.display
4.exit
enter your choice3
List is Empty
1.create
2.delete
3.display
4.exit
enter your choice4