Linked List Operations in C++ | Insert, Delete, Reverse

Linked List Operations in C++ | Insert, Delete, Reverse

🔗 Linked List Operations in C++

Linked lists are dynamic data structures where elements (nodes) are linked using pointers. This tutorial covers key operations: Insertion, Deletion, and Reversal.

📘 Key Concepts

  • Insertion: Add elements at the beginning, end, or middle.
  • Deletion: Remove elements by value or position.
  • Reversal: Reverse the linked list order using pointer manipulation.

📄 C++ Code for Linked List Operations


#include <iostream>
using namespace std;

struct Node {
    int data;
    Node* next;
};

class LinkedList {
    Node* head;
public:
    LinkedList() { head = nullptr; }

    void insertAtEnd(int val) {
        Node* newNode = new Node{val, nullptr};
        if (!head) {
            head = newNode;
            return;
        }
        Node* temp = head;
        while (temp->next)
            temp = temp->next;
        temp->next = newNode;
    }

    void deleteByValue(int val) {
        if (!head) return;
        if (head->data == val) {
            Node* toDelete = head;
            head = head->next;
            delete toDelete;
            return;
        }
        Node* temp = head;
        while (temp->next && temp->next->data != val)
            temp = temp->next;
        if (temp->next) {
            Node* toDelete = temp->next;
            temp->next = temp->next->next;
            delete toDelete;
        }
    }

    void reverse() {
        Node* prev = nullptr;
        Node* curr = head;
        Node* next = nullptr;
        while (curr) {
            next = curr->next;
            curr->next = prev;
            prev = curr;
            curr = next;
        }
        head = prev;
    }

    void display() {
        Node* temp = head;
        while (temp) {
            cout << temp->data << " ";
            temp = temp->next;
        }
        cout << endl;
    }
};

int main() {
    LinkedList list;
    list.insertAtEnd(10);
    list.insertAtEnd(20);
    list.insertAtEnd(30);
    cout << "Original list: ";
    list.display();

    list.deleteByValue(20);
    cout << "After deletion of 20: ";
    list.display();

    list.reverse();
    cout << "Reversed list: ";
    list.display();
    return 0;
}
    

📝 Sample Output

Original list: 10 20 30
After deletion of 20: 10 30
Reversed list: 30 10

🧠 How It Works

  • insertAtEnd(): Traverses to the end of the list and appends the new node.
  • deleteByValue(): Finds and removes a node by matching value.
  • reverse(): Reverses the list by adjusting pointers iteratively.

Linked lists are fundamental in computer science and are the basis for more advanced structures like stacks, queues, and graphs.

Post a Comment

Post a Comment (0)

Previous Post Next Post

ads

ads

Update cookies preferences