Delete smaller nodes in linked list program in C

Delete all the nodes from a doubly linked list that are smaller than a given value in C++

C++Server Side ProgrammingProgramming

In this tutorial, we are going to learn how to delete all prime nodes from a doubly linked list.

Let's see the steps to solve the problem.

  • Write struct with data, prev and next pointers.

  • Write a function to insert the node into the doubly linked list.

  • Initialize the doubly linked list with dummy data.

  • Iterate over the doubly linked list. Find whether the current node data is less than given value or not.

  • If the current data is less than the given value, then delete the node.

  • Write a function to delete the node. Consider the following three cases while deleting the node.

    • If the node is head node, then move the head to next node.

    • If the node is middle node, then link the next node to the previous node

    • If the node is end node, then remove the previous node link.

Example

Let's see the code.

Live Demo

#include using namespace std; struct Node { int data; Node *prev, *next; }; void insertNode[Node** head_ref, int new_data] { Node* new_node = [Node*]malloc[sizeof[struct Node]]; new_node->data = new_data; new_node->prev = NULL; new_node->next = [*head_ref]; if [[*head_ref] != NULL] { [*head_ref]->prev = new_node; } [*head_ref] = new_node; } void deleteNode[Node** head_ref, Node* del] { if [*head_ref == NULL || del == NULL] { return; } if [*head_ref == del] { *head_ref = del->next; } if [del->next != NULL] { del->next->prev = del->prev; } if [del->prev != NULL] { del->prev->next = del->next; } free[del]; return; } void deleteSmallerNodes[Node** head_ref, int K] { Node* temp = *head_ref; Node* next; while [temp != NULL] { next = temp->next; if [temp->data < K] { deleteNode[head_ref, temp]; } temp = next; } } void printLinkedList[Node* head] { while [head != NULL] { cout data next; } } int main[] { Node* head = NULL; insertNode[&head, 1]; insertNode[&head, 2]; insertNode[&head, 3]; insertNode[&head, 4]; insertNode[&head, 10]; insertNode[&head, 11]; insertNode[&head, 12]; int K = 10; cout 3 -> 2 -> 1 -> Linked List after deletion: 12 -> 11 -> 10 ->

Conclusion

If you have any queries in the tutorial, mention them in the comment section.

Hafeezul Kareem
Published on 30-Dec-2020 06:55:25
Previous Page Print Page
Next Page
Advertisements

Video liên quan

Chủ Đề