hey
/* author: patel divyakumar bharatbhai date: 27/11/2022 problem: insertion of singly Linked List */ #include <stdio.h> #include <stdlib.h> #include <conio.h> struct node { int data; struct node *next; } * head; void insertAtFront(); void insertAtRear(); void displayLinkedList(); void deleteAtFront(); void insertAtMid(); int main() { int x, ch; printf("1. Insert value at rear(end) \n2. Insert value at at front \n3. Display \n4. Delete at front\n5. Insert at middle(ascending order) \n6. exit \n"); do { printf("Enter your choice: "); scanf("%d", &ch); switch (ch) { case 1: printf("Enter the value: "); scanf("%d", &x); insertAtRear(x); break; case 2: printf("Enter the value: "); scanf("%d", &x); insertAtFront(x); break; case 3: displayLinkedList(); break; case 4: deleteAtFront(); break; case 5: printf("Enter the value: "); scanf("%d", &x); insertAtMid(x); break; default: printf("BYE..."); free(head); exit(0); break; } } while (1); return 0; } void insertAtFront(int x) { struct node *new; new = (struct node *)malloc(sizeof(struct node)); new->data = x; new->next = head; head = new; } void insertAtRear(int x) { struct node *new, *temp; new = (struct node *)malloc(sizeof(struct node)); new->data = x; new->next = NULL; if (head == NULL) { head = new; } else { temp = head; while (temp->next != NULL) { temp = temp->next; } temp->next = new; } } void displayLinkedList() { struct node *temp; if (head == NULL) { printf("\nLinked List is Empty \n"); } else { temp = head; while (temp->next != NULL) { printf("%d\n", temp->data); temp = temp->next; } printf("%d\n", temp->data); } } void deleteAtFront() { struct node *new; if (head == NULL) { printf("Linked List is Empty\n"); } else { new = head; printf("Deleted number is %d", new->data); new = new->next; head = new; } } void insertAtMid(int x) { struct node *new, *temp, *temp2; new = (struct node *)malloc(sizeof(struct node)); new->data = x; temp = head; if (head == NULL) { head = new; new->next = NULL; } else if (temp->data > new->data) { new->next = head; head = new; } else { temp2 = temp; while (temp->next != NULL) { if (temp->data < new->data) { temp2 = temp; temp = temp->next; } else { break; } } if (temp->next == NULL && temp->data < new->data) { temp->next = new; new->next = NULL; } else { temp2->next = new; new->next = temp; } } }
0 Comments
Do not make spam in comment box.