Delete node in linked list C++

Write a C program to create a singly linked list of n nodes and delete the first node or beginning node of the linked list. How to delete first node from singly linked list in C language. Algorithm to delete first node from singly linked list in C. Steps to delete first node from singly linked list.

Required knowledge

Basic C programming, Functions, Singly Linked List, Dynamic memory allocation

Algorithm to delete first node from Singly Linked List

Algorithm to delete first node of Singly Linked List %%Input: head of the linked list Begin: If [head != NULL] then toDelete head head head.next unalloc [toDelete] End if End

Steps to delete first node from Singly Linked List

  1. Copy the address of first node i.e. head node to some temp variable say toDelete.

  2. Move the head to the second node of the linked list i.e. head = head->next.
  3. Disconnect the connection of first node to second node.
  4. Free the memory occupied by the first node.

Program to delete first node of Singly Linked List

/** * C program to delete first node from Singly Linked List */ #include #include /* Structure of a node */ struct node { int data; // Data struct node *next; // Address }*head; void createList[int n]; void deleteFirstNode[]; void displayList[]; int main[] { int n, choice; /* * Create a singly linked list of n nodes */ printf["Enter the total number of nodes: "]; scanf["%d", &n]; createList[n]; printf["\nData in the list \n"]; displayList[]; printf["\nPress 1 to delete first node: "]; scanf["%d", &choice]; /* Delete first node from list */ if[choice == 1] deleteFirstNode[]; printf["\nData in the list \n"]; displayList[]; return 0; } /* * Create a list of n nodes */ void createList[int n] { struct node *newNode, *temp; int data, i; head = [struct node *]malloc[sizeof[struct node]]; /* * If unable to allocate memory for head node */ if[head == NULL] { printf["Unable to allocate memory."]; } else { /* * In data of node from the user */ printf["Enter the data of node 1: "]; scanf["%d", &data]; head->data = data; // Link the data field with data head->next = NULL; // Link the address field to NULL temp = head; /* * Create n nodes and adds to linked list */ for[i=2; idata = data; // Link the data field of newNode with data newNode->next = NULL; // Link the address field of newNode with NULL temp->next = newNode; // Link previous node i.e. temp to the newNode temp = temp->next; } } printf["SINGLY LINKED LIST CREATED SUCCESSFULLY\n"]; } } /* * Deletes the first node of the linked list */ void deleteFirstNode[] { struct node *toDelete; if[head == NULL] { printf["List is already empty."]; } else { toDelete = head; head = head->next; printf["\nData deleted = %d\n", toDelete->data]; /* Clears the memory occupied by first node*/ free[toDelete]; printf["SUCCESSFULLY DELETED FIRST NODE FROM LIST\n"]; } } /* * Displays the entire list */ void displayList[] { struct node *temp; /* * If the list is empty i.e. head = NULL */ if[head == NULL] { printf["List is empty."]; } else { temp = head; while[temp != NULL] { printf["Data = %d\n", temp->data]; // Print data of current node temp = temp->next; // Move to next node } } }

Output

Enter the total number of nodes: 5 Enter the data of node 1: 10 Enter the data of node 2: 20 Enter the data of node 3: 30 Enter the data of node 4: 40 Enter the data of node 5: 50 SINGLY LINKED LIST CREATED SUCCESSFULLY Data in the list Data = 10 Data = 20 Data = 30 Data = 40 Data = 50 Press 1 to delete first node: 1 Data deleted = 10 SUCCESSFULLY DELETED FIRST NODE FROM LIST Data in the list Data = 20 Data = 30 Data = 40 Data = 50

Happy coding

Recommended posts

  • C program to insert a node at the beginning of a Singly Linked List.
  • C program to insert a node at the middle of a Singly Linked List.
  • C program to insert a node at the end of a Singly Linked List.
  • C program to delete a node from the middle of a Singly Linked List.
  • C program to delete all nodes of a Singly Linked List.

Video liên quan

Chủ Đề