# Creating a circular singly linked list

Jun 18th, 2021
813
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
1. /* Creating a circular singly linked list */
2. #include <stdio.h>
3. #include <malloc.h>
4.
5. struct node {
6.     int data;
7.     struct node *next;
8. };
9.
11. {
12.     struct node *temp = malloc(sizeof(struct node));
13.     temp->data = data;
14.     temp->next = temp;
15.     return temp;
16. }
17.
18. struct node *addAtEnd(struct node *tail, int data)
19. {
20.     struct node *newP = malloc(sizeof(struct node));
21.     newP->data = data;
22.     newP->next = NULL;
23.
24.     newP->next = tail->next;
25.     tail->next = newP;
26.     tail = tail->next;
27.     return tail;
28. }
29.
30. struct node* createList(struct node* tail)
31. {
32.     int i, n, data;
33.     printf("Enter the number of nodes of the linked list: ");
34.     scanf("%d", &n);
35.
36.     if (n == 0)
37.         return tail;
38.     printf("Enter the element 1: ");
39.     scanf("%d", &data);
41.
42.     for (i = 1; i < n; i++)
43.     {
44.         printf("Enter the element %d: ", i + 1);
45.         scanf("%d", &data);
47.     }
48.     return tail;
49. }
50.
51. void print(struct node* tail)
52. {
53.     if (tail == NULL)
54.         printf("No node in the list.");
55.     else
56.     {
57.         struct node* p = tail->next;
58.         do {
59.             printf("%d ", p->data);
60.             p = p->next;
61.         } while (p != tail->next);
62.     }
63.     printf("\n");
64. }
65.
66. int main()
67. {
68.     struct node *tail;
69.     tail = createList(tail);
70.     print(tail);
71.     return 0;
72. }
73.
74.
75. /*
76. Output:
77. Enter the number of nodes of the linked list : 4
78. Enter the element 1 : 12
79. Enter the element 2 : 23
80. Enter the element 3 : 34
81. Enter the element 4 : 45
82. 12 23 34 45
83. */
RAW Paste Data