This C Program uses recursive function & displays a linked list. A linked list is an ordered set of data elements, each containing a link to its successor.
Here is the source code of the C program to display a linked list. The C Program is successfully compiled and run on a Linux system. The program output is also shown below.
-
/* -
* Recursive C program to display members of a linked list -
*/ -
#include <stdio.h> -
#include <stdlib.h> -
-
struct node -
{ -
int a;
-
struct node *next;
-
};
-
-
void generate(struct node **);
-
void display(struct node*);
-
void delete(struct node **);
-
-
int main()
-
{ -
struct node *head = NULL;
-
-
generate(&head);
-
display(head);
-
delete(&head);
-
return 0;
-
} -
-
void generate(struct node **head)
-
{ -
int num = 10, i;
-
struct node *temp;
-
-
for (i = 0; i < num; i++)
-
{ -
temp = (struct node *)malloc(sizeof(struct node));
-
temp->a = i;
-
if (*head == NULL)
-
{ -
*head = temp;
-
(*head)->next = NULL;
-
} -
else -
{ -
temp->next = *head;
-
*head = temp;
-
} -
} -
} -
-
void display(struct node *head)
-
{ -
printf("%d ", head->a);
-
if (head->next == NULL)
-
{ -
return;
-
} -
display(head->next);
-
} -
-
void delete(struct node **head)
-
{ -
struct node *temp;
-
while (*head != NULL)
-
{ -
temp = *head;
-
*head = (*head)->next;
-
free(temp);
-
} -
}
$ cc pgm15.c $ a.out 9 8 7 6 5 4 3 2 1 0