🔗 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
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