C Exercises: Create and display a circular linked list
C Doubly Linked List : Exercise-12 with Solution
Write a program in C to create and display a circular linked list.
Visual Presentation:
Sample Solution:
C Code:
#include <stdio.h>
#include <stdlib.h>
struct node {
int num;
struct node *nextptr;
}*stnode;
// Function prototypes
void ClListcreation(int n);
void displayClList();
int main() {
int n;
stnode = NULL;
// User input for the number of nodes
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);
// Creating a circular linked list
ClListcreation(n);
displayClList();
return 0;
}
// Function to create a circular linked list
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;
// Loop to create subsequent nodes and link them to form a circular list
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; // Setting the next address of the new node as NULL
preptr->nextptr = newnode; // Linking the previous node with the new node
preptr = newnode; // Advancing the previous node to the new node
}
preptr->nextptr = stnode; // Linking the last node with the first node to form a circular list
}
}
// Function to display the circular linked list
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");
// Loop to display nodes in the circular list
do {
printf(" Data %d = %d\n", n, tmp->num);
tmp = tmp->nextptr; // Moving to the next node
n++;
} while (tmp != stnode); // Checking if we have reached the first node again
}
}
Sample Output:
Circular Linked List : Create and display a circular linked list : ----------------------------------------------------------------------- Input the number of nodes : 3 Input data for node 1 : 2 Input data for node 2 : 5 Input data for node 3 : 8 Data entered in the list are : Data 1 = 2 Data 2 = 5 Data 3 = 8
Flowchart:
ClListcreation() :
displayClList() :
C Practice online:
Previous: Write a program in C to find the maximum value from a doubly linked list.
Next: Write a program in C to insert a node at the beginning of a circular linked list.
What is the difficulty level of this exercise?
Test your Programming skills with w3resource's quiz.
It will be nice if you may share this link in any developer community or anywhere else, from where other developers may find this content. Thanks.
https://www.w3resource.com/c-programming-exercises/linked_list/c-linked_list-exercise-22.php
- Weekly Trends and Language Statistics
- Weekly Trends and Language Statistics