#include <iostream> current->next = newNode; delete current;
#include <vector> } cout << "Element deleted successfully.\n";
#include <algorithm> current = newNode; return;
using namespace std; } }
} previous = current;
class Node { current = current->next;
public: void searchElement(int searchElement) { }
int value; Node* current = head; cout << "Element not found in the linked list.\n";
Node* next; int index = 0; }
}; while (current != nullptr) {
if (current->value == searchElement) { void modifyElement(int value, int newValue) {
class LinkedList { cout << "Element found at index " << index << "\n"; Node* current = head;
public: return; while (current != nullptr) {
LinkedList() : head(nullptr) {} } if (current->value == value) {
current = current->next; current->value = newValue;
void createList() { index++; cout << "Element modified successfully.\n";
int size; } return;
cout << "Enter the size of the linked list: "; cout << "Element not found in the linked list.\n"; }
cin >> size; } current = current->next;
Node* current = nullptr; }
for (int i = 0; i < size; ++i) { void deleteElement(int value) { cout << "Element not found in the linked list.\n";
cout << "Enter the element " << (i + 1) << ": "; Node* current = head; }
int value; Node* previous = nullptr;
cin >> value; while (current != nullptr) { void addElement(int newValue) {
Node* newNode = new Node; if (current->value == value) { Node* newNode = new Node;
newNode->value = value; if (previous != nullptr) { newNode->value = newValue;
newNode->next = nullptr; previous->next = current->next; newNode->next = nullptr;
if (i == 0) { } else { if (head == nullptr) {
head = newNode; head = current->next; head = newNode;
} else { } } else {
Node* current = head; cout << "Enter the size of the array: "; } else {
while (current->next != nullptr) { int size; cout << "Element not found in the array.\n";
current = current->next; cin >> size; }
} arr.resize(size); }
current->next = newNode; cout << "Enter the elements of the array: ";
} for (int i = 0; i < size; ++i) { void modifyElement(vector<int>& arr) {
cout << "Element added successfully.\n"; cin >> arr[i]; cout << "Enter the value to modify: ";
} } int value;
} cin >> value;
void displayList() { auto it = find(arr.begin(), arr.end(), value);
Node* current = head; void searchElement(const vector<int>& arr) { if (it != arr.end()) {
while (current != nullptr) { cout << "Enter the element to search: "; cout << "Enter the new value: ";
cout << current->value << " "; int searchElement; int newValue;
current = current->next; cin >> searchElement; cin >> newValue;
} auto it = find(arr.begin(), arr.end(), searchElement); *it = newValue;
cout << "\n"; if (it != arr.end()) { cout << "Element modified successfully.\n";
} cout << "Element found at index " << distance(arr.begin(), it) << "\n"; } else {
} else { cout << "Element not found in the array.\n";
private: cout << "Element not found in the array.\n"; }
Node* head; } }
}; }
void addElement(vector<int>& arr) {
void displayMenu() { void deleteElement(vector<int>& arr) { cout << "Enter the new value to add: ";
cout << "UTILITY MENU\n"; cout << "Enter the value to delete: "; int newValue;
cout << "1. Linked List Operations\n"; int value; cin >> newValue;
cout << "2. Array Operations\n"; cin >> value; arr.push_back(newValue);
cout << "0. Exit the program\n"; auto it = find(arr.begin(), arr.end(), value); cout << "Element added successfully.\n";
} if (it != arr.end()) { }
arr.erase(it);
void createArray(vector<int>& arr) { cout << "Element deleted successfully.\n"; int main() {
int choice; cin >> newValue; default:
while (true) { list.modifyElement(value, newValue); cout << "Invalid choice. Please enter again.\n";
displayMenu(); break; break;
cout << "Enter your choice: "; } }
cin >> choice; case 3: { } while (listChoice != 0);
switch (choice) { int value; break;
case 1: { cout << "Enter the value to search: "; }
LinkedList list; cin >> value; case 2: {
int listChoice; list.searchElement(value); vector<int> arr;
do { break; int arrayChoice;
cout << "LINKED LIST MENU\n"; } do {
cout << "1. Create a new linked list\n"; case 4: { cout << " ARRAY MENU\n";
cout << "2. Modify an existing value\n"; int value; cout << "1. Create a new array\n";
cout << "3. Search for an element\n"; cout << "Enter the value to delete: "; cout << "2. Modify an existing value\n";
cout << "4. Delete an element\n"; cin >> value; cout << "3. Search for an element\n";
cout << "5. Add a new element\n"; list.deleteElement(value); cout << "4. Delete an element\n";
cout << "6. Display the linked list\n"; break; cout << "5. Add a new element\n";
cout << "0. Return to main menu\n"; } cout << "0. Return to main menu\n";
cout << "Enter your choice: "; case 5: { cout << "Enter your choice: ";
cin >> listChoice; int value; cin >> arrayChoice;
cout << "Enter the value to add: ";
switch (listChoice) { cin >> value; switch (arrayChoice) {
case 1: list.addElement(value); case 1:
list.createList(); break; createArray(arr);
break; } break;
case 2: { case 6: case 2:
int value, newValue; list.displayList(); modifyElement(arr);
cout << "Enter the value to modify: "; break; break;
cin >> value; case 0: case 3:
cout << "Enter the new value: "; break; searchElement(arr);
break;
case 4:
deleteElement(arr);
break;
case 5:
addElement(arr);
break;
case 0:
break;
default:
cout << "Invalid choice. Please enter again.\n";
break;
} while (arrayChoice != 0);
break;
case 0:
cout << "Exiting the program. Goodbye!\n";
return 0;
default:
cout << "Invalid choice. Please enter again.\n";
break;
return 0;