Practical Name : Write a ‘C’ program to create Circularly Doubly Linked list and display it. Student
#include <stdio.h> #include <stdlib.h struct node {
int num;
struct node * nextptr;
}*stnode;
void ClListcreation(int n); void displayClList();
int main()
{
int n;
stnode = NULL;
printf("\n\n Circular Linked List : Create and display a circular linked list :\n"); printf(" \n");
printf(" Input the number of nodes : "); scanf("%d", &n);
ClListcreation(n); displayClList(); return 0;
}
void ClListcreation(int n)
{
int i, num;
struct node *preptr, *newnode; if(n >= 1)
{
stnode = (struct node *)malloc(sizeof(struct node)); printf(" Input data for node 1 : ");
scanf("%d", &num); stnode->num = num; stnode->nextptr = NULL; preptr = stnode;
for(i=2; i<=n; i++)
{
newnode = (struct node *)malloc(sizeof(struct node)); printf(" Input data for node %d : ", i);
scanf("%d", &num); newnode->num = num; newnode->nextptr = NULL; preptr->nextptr = newnode; preptr = newnode;
}
preptr->nextptr = stnode;
}
}
void displayClList() struct node *tmp; int n = 1;
if(stnode == NULL)
{
printf(" No data found in the List yet.");
}
else
{
tmp = stnode;
printf("\n\n Data entered in the list are :\n"); do {
printf(" Data %d = %d\n", n, tmp->num); tmp = tmp->nextptr;
n++;
}while(tmp != stnode);
}
}