#C++ Day54 Basic Data Structure Chapter6  Linked List-Actual questions Coding  January 16 2026

#include <iostream>

#include <stdexcept>

using namespace std;

#define eleType double

//1.define the structure

struct ListNode {

eleType data;

ListNode* next;

ListNode(eleType x) :data(x), next(nullptr){}

};

//2.initialize

class LinkedList {

private:

ListNode* head;

int size;

public:

LinkedList():head(nullptr),size(0){}

~LinkedList();

void insert(int i, eleType value);

void remove(int i);

ListNode* find(eleType value);

ListNode* get(int i);

void update(int i, eleType value);

void print();

};

//3.destructor function

LinkedList::~LinkedList() {

ListNode* curr = head;

while (curr != nullptr) {

ListNode* temp = curr;

curr = curr->next;

delete temp;

}

}

//4.insert

void LinkedList::insert(int i, eleType value) {

if (i<0 || i>size) {

throw std::out_of_range(“Invalid Position”);

}

ListNode* newNode = new ListNode(value);

if (i == 0) {

newNode->next = head;

head = newNode;

}

else {

ListNode* curr = head;

for (int j = 0; j < i – 1; j++) {

curr = curr->next;

}

newNode->next=curr->next;

curr->next = newNode;

}

size++;

}

//5.remove

void LinkedList::remove(int i) {

if (i < 0 || i >= size) {

throw std::out_of_range(“Invalid Position”);

}

ListNode* curr = head;

if (i == 0) {

ListNode* temp = curr;

head=curr->next;

delete temp;

}

else {

for (int j = 0; j < i – 1; j++) {

curr = curr->next;

}

ListNode* temp =curr->next;

curr->next = temp->next;

delete temp;

}

size–;

}

//6.find

ListNode* LinkedList::find(eleType value) {

ListNode* curr = head;

while (curr != nullptr && curr->data != value) {

curr = curr->next;

}

return curr;

}

//7.get

ListNode* LinkedList::get(int i) {

if (i<0 || i>=size) {

throw std::out_of_range(“Invalid Position”);

}

ListNode* curr = head;

for (int j = 0; j < i; j++) {

curr = curr->next;

}

return curr;

}

//8.update

void LinkedList::update(int i, eleType value) {

if (i<0 || i>=size) {

throw std::out_of_range(“Invalid Position”);

}

get(i)->data = value;

}

//9.print

void LinkedList::print() {

ListNode* curr = head;

while (curr) {

cout << curr->data << ” “;

curr = curr->next;

}

cout << endl;

}

int main() {

LinkedList list;

list.insert(0, 10);

list.insert(1, 20);

list.insert(2, 30);

list.insert(3, 40);

list.insert(4, 50);

list.print();

list.remove(2);

list.print();

list.update(0, 555.6);

list.print();

cout << list.find(20)->data<<endl;

cout << list.get(0)->data << endl;

return 0;

}