LIST ADT USING LINKED LIST
#include <iostream>
using namespace std;
struct Node {
int data;
Node* next;
};
Node* head = nullptr;
void create();
void insert();
void deletion();
void search();
void display();
int main() {
int choice;
cout << "\n Main Menu";
cout << "\n 1.Create \n 2.Delete \n 3.Search \n 4.Insert \n 5.Display \n 6.Exit";
do {
cout << "\nEnter your choice: ";
cin >> choice;
switch (choice) {
case 1: create(); break;
case 2: deletion(); break;
case 3: search(); break;
case 4: insert(); break;
case 5: display(); break;
case 6: exit(0);
default: cout << "Invalid choice, please select between 1-6\n";
}
} while (choice != 6);
return 0;
}
void create() {
int n, data;
cout << "\nEnter the number of elements: ";
cin >> n;
cout << "\nEnter the elements:\n";
for (int i = 0; i < n; ++i) {
cin >> data;
Node* newNode = new Node{data, nullptr};
if (!head) {
head = newNode;
} else {
Node* temp = head;
while (temp->next) temp = temp->next;
temp->next = newNode;
}
}
}
void deletion() {
int value;
cout << "Enter the number you want to delete: ";
cin >> value;
Node* temp = head;
Node* prev = nullptr;
while (temp && temp->data != value) {
prev = temp;
temp = temp->next;
}
if (!temp) {
cout << value << " not found\n";
return;
}
if (!prev) {
head = head->next;
} else {
prev->next = temp->next;
}
delete temp;
cout << value << " deleted\n";
}
void search() {
int value;
cout << "Enter the number to search: ";
cin >> value;
Node* temp = head;
int position = 1;
while (temp) {
if (temp->data == value) {
cout << "Value found at position " << position << "\n";
return;
}
temp = temp->next;
++position;
}
cout << "Value not found\n";
}
void insert() {
int n, data;
cout << "\nEnter the number of elements to insert: ";
cin >> n;
cout << "\nEnter the elements:\n";
for (int i = 0; i < n; ++i) {
cin >> data;
Node* newNode = new Node{data, nullptr};
if (!head) {
head = newNode;
} else {
Node* temp = head;
while (temp->next) temp = temp->next;
temp->next = newNode;
}
}
}
void display() {
Node* temp = head;
while (temp) {
cout << temp->data << " ";
temp = temp->next;
}
cout << "\n";
}
Comments
Post a Comment