Weekend Homework Anjali Sharma 19MCA0210: Q1. Write A Program To Implement A Circular Doubly Linked List Where The Head
Weekend Homework Anjali Sharma 19MCA0210: Q1. Write A Program To Implement A Circular Doubly Linked List Where The Head
Anjali Sharma
19MCA0210
Q1. Write a program to implement a circular doubly linked list where the head
pointer points to the last node.
#include <stdio.h>
#include <stdlib.h>
struct stu
int rno;
};
curr->rno = rno;
curr->prev = curr;
curr->next = curr;
if(head==NULL)
head=curr;
else
(head->next)->prev= curr;
curr->next=head->next;
curr->prev=head;
head->next=curr;
printf("inserted successfully\n");
int sno;
curr->rno = rno;
curr->prev = curr;
curr->next = curr;
if(head==NULL)
head=curr;
else
printf("enter rno after which you wanna insert the node \n");
scanf("%d",&rno);
temp=temp->next;
curr->prev=head;
curr->next=head->next;
(head->next)->prev=curr;
head->next=curr;
head=curr;
else{
curr->next=temp->next;
(temp->next)->prev=curr;
curr->prev=temp;
temp->next=curr;
}
}
curr->rno = rno;
curr->prev = curr;
curr->next = curr;
if(head==NULL)
head=curr;
else
curr->next=head->next;
(head->next)->prev=curr;
head->next=curr;
curr->prev=head;
head=curr;
printf("inserted successfully");
void deleteb()
{
if(head==NULL)
printf("Empty list");
else
temp=head->next;
head->next=(head->next)->next;
(temp->next)->prev=head;
free(temp);
if(head==NULL)
printf("list is empty");
return;
else
temp=temp->next;
if(temp->next==head && temp->rno!=rno_del)
else
(temp->prev)->next=temp->next;
(temp->next)->prev=temp->prev;
free(temp);
void end_delete()
if(head==NULL)
printf("empty list");
else
(head->next)->prev=head->prev;
(head->prev)->next=head->next;
head=head->prev;
free(temp);
}
}
void display()
if(head==NULL)
printf("Nothing to delete");
else{
do
printf("\n");
temp=temp->next;
}while(temp!=head);
void main()
int rno,choice,rno_del;
do
printf("Enter 1 for insertion in beginning, \n 2 for insertion in middle,\n 3 for insertion in end, \n 4
for delete from beginning, \n 5 for delete from middle, \n 6 for delete from end, \n 7 for display \n 8 for
exit \n");
scanf("%d", &choice);
switch(choice)
scanf("%d",&rno);
insertb(rno);
break;
scanf("%d",&rno);
midi(rno);
break;
scanf("%d ",&rno);
inserte(rno);
break;
case 4: deleteb();
break;
midd(rno_del);
break;
case 6: end_delete();
break;
case 7: display();
break;
case 8: printf("exit");
}while(choice!=8);
}