Aim: Create a singly linked list of n nodes and display its elements using C.
#include <stdio.h> #include <malloc.h> struct node { int value; struct node *next; }; typedef struct node snode; snode *newnode, *ptr; snode *first = NULL, *last = NULL; snode* create_node(int); void insert_node(int); void display(); int main() { int ch=0,n; while (ch!=3) { printf("\n---Linked List Operations---"); printf("\n1.Create List \n2.Display List \n3.Exit\n"); printf("\nEnter your choice : "); scanf("%d", &ch); switch (ch) { case 1: printf("\nEnter the number of elements : "); scanf("%d",&n); insert_node(n); break; case 2: printf("\nElements in the list are : "); display(); break; case 3: printf("Exiting..."); break; default: printf("\nInvalid Choice\n"); break; } } return 0; } snode* create_node(int val) { newnode = (snode *)malloc(sizeof(snode)); newnode->value = val; newnode->next = NULL; return newnode; } void insert_node(int n) { first = NULL,last=NULL; int val,i; for(i=0;i<n;i++) { printf("\nEnter the value for the Node %d : ",i+1); scanf("%d", &val); newnode = create_node(val); if (first == last && last == NULL) { first = last = newnode; first->next = NULL; last->next = NULL; } else { last->next = newnode; last = newnode; last->next = NULL; } } printf("\nLinked list created\n"); } void display() { if (first == NULL) { printf("\nNo nodes in the list to display\n"); } else { for (ptr = first;ptr != NULL;ptr = ptr->next) { printf(" %d ", ptr->value); } } }
Output
—Linked List Operations— 1.Create List 2.Display List 3.Exit Enter your choice : 1 Enter the number of elements : 3 Enter the value for the Node 1 : 54 Enter the value for the Node 2 : 67 Enter the value for the Node 3 : 23 Linked list created —Linked List Operations— 1.Create List 2.Display List 3.Exit Enter your choice : 2 Elements in the list are : 54 67 23 —Linked List Operations— 1.Create List 2.Display List 3.Exit Enter your choice : 3 Exiting...