From 25bc68bf34006c4650f13d56bfdedd91a6366e1a Mon Sep 17 00:00:00 2001 From: havya1310 <44518163+havya1310@users.noreply.github.com> Date: Sat, 27 Oct 2018 11:23:28 +0530 Subject: [PATCH] Create Linked List --- Linked List | 64 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 64 insertions(+) create mode 100644 Linked List diff --git a/Linked List b/Linked List new file mode 100644 index 00000000..e5e1944c --- /dev/null +++ b/Linked List @@ -0,0 +1,64 @@ +#include +#include + +/* structure for a node */ +struct Node +{ + int data; + struct Node *next; +}; + +/* Function to insert a node at the begining of a Circular +linked list */ +void push(struct Node **head_ref, int data) +{ + struct Node *ptr1 = (struct Node *)malloc(sizeof(struct Node)); + struct Node *temp = *head_ref; + ptr1->data = data; + ptr1->next = *head_ref; + + /* If linked list is not NULL then set the next of last node */ + if (*head_ref != NULL) + { + while (temp->next != *head_ref) + temp = temp->next; + temp->next = ptr1; + } + else + ptr1->next = ptr1; /*For the first node */ + + *head_ref = ptr1; +} + +/* Function to print nodes in a given Circular linked list */ +void printList(struct Node *head) +{ + struct Node *temp = head; + if (head != NULL) + { + do + { + printf("%d ", temp->data); + temp = temp->next; + } + while (temp != head); + } +} + +/* Driver program to test above functions */ +int main() +{ + /* Initialize lists as empty */ + struct Node *head = NULL; + + /* Created linked list will be 11->2->56->12 */ + push(&head, 12); + push(&head, 56); + push(&head, 2); + push(&head, 11); + + printf("Contents of Circular Linked List\n "); + printList(head); + + return 0; +}