#include <iostream>
using namespace std;
int main() {
// your code goes here
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKaW50IG1haW4oKSB7CgkvLyB5b3VyIGNvZGUgZ29lcyBoZXJlCglyZXR1cm4gMDsKfQ==
I2luY2x1ZGUmbHQ7Yml0cy9zdGRjKysuaCZndDsKIAp1c2luZyBuYW1lc3BhY2Ugc3RkOwpjbGFzcyBub2RlIHsKcHVibGljOgogICAgaW50IGRhdGE7CiAgICBub2RlKiBuZXh0Owp9OwogCmNsYXNzIGxpbmtlZCB7CnB1YmxpYzoKICAgIG5vZGUqIGhlYWQ7CiAKICAgIGxpbmtlZCgpIHsKICAgICAgICBoZWFkID0gTlVMTDsKICAgIH0KIAogICAgYm9vbCBpbXB0eSgpIHsKICAgICAgICByZXR1cm4gKGhlYWQgPT0gTlVMTCk7CiAgICB9CiAKICAgIGJvb2wgZm91bmQoaW50IHZhbHVlKSB7CiAgICAgICAgYm9vbCBmID0gZmFsc2U7CiAgICAgICAgbm9kZSogdGVtcCA9IGhlYWQ7CiAgICAgICAgd2hpbGUgKHRlbXAgIT0gTlVMTCkgewogICAgICAgICAgICBpZiAodGVtcC0mZ3Q7ZGF0YSA9PSB2YWx1ZSkgewogICAgICAgICAgICAgICAgZiA9IHRydWU7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgfQogICAgICAgICAgICB0ZW1wID0gdGVtcC0mZ3Q7bmV4dDsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIGY7CiAgICB9CiAKICAgIHZvaWQgaW5zZXJmKGludCB2MikgewogICAgICAgIG5vZGUqIG5ld25vZGUgPSBuZXcgbm9kZSgpOwogICAgICAgIG5ld25vZGUtJmd0O2RhdGEgPSB2MjsKICAgICAgICBuZXdub2RlLSZndDtuZXh0ID0gaGVhZDsKICAgICAgICBoZWFkID0gbmV3bm9kZTsKICAgIH0KIAogICAgdm9pZCBhcHBlbmQoaW50IHYzKSB7CiAgICAgICAgbm9kZSogbmV3bm9kZSA9IG5ldyBub2RlKCk7CiAgICAgICAgbmV3bm9kZS0mZ3Q7ZGF0YSA9IHYzOwogICAgICAgIG5ld25vZGUtJmd0O25leHQgPSBOVUxMOwogICAgICAgIGlmIChpbXB0eSgpKSB7CiAgICAgICAgICAgIGhlYWQgPSBuZXdub2RlOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIG5vZGUqIHRlbXAgPSBoZWFkOwogICAgICAgICAgICB3aGlsZSAodGVtcC0mZ3Q7bmV4dCAhPSBOVUxMKSB7CiAgICAgICAgICAgICAgICB0ZW1wID0gdGVtcC0mZ3Q7bmV4dDsKICAgICAgICAgICAgfQogICAgICAgICAgICB0ZW1wLSZndDtuZXh0ID0gbmV3bm9kZTsKICAgICAgICB9CiAgICB9CiAKICAgIHZvaWQgZGlzcCgpIHsKICAgICAgICBpZiAoaW1wdHkoKSkgewogICAgICAgICAgICBjb3V0ICZsdDsmbHQ7ICZxdW90O05vIGVsZW1lbnRzXG4mcXVvdDs7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgbm9kZSogdGVtcCA9IGhlYWQ7CiAgICAgICAgICAgIHdoaWxlICh0ZW1wICE9IE5VTEwpIHsKICAgICAgICAgICAgICAgIGNvdXQgJmx0OyZsdDsgdGVtcC0mZ3Q7ZGF0YSAmbHQ7Jmx0OyAmcXVvdDsgJnF1b3Q7OwogICAgICAgICAgICAgICAgdGVtcCA9IHRlbXAtJmd0O25leHQ7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgY291dCAmbHQ7Jmx0OyBlbmRsOwogICAgICAgIH0KICAgIH0KIAogICAgdm9pZCBpbnNlcnRBdChpbnQgcG9zLCBpbnQgdmFsdWUpIHsKICAgICAgICBub2RlKiBuZXdOb2RlID0gbmV3IG5vZGUoKTsKICAgICAgICBuZXdOb2RlLSZndDtkYXRhID0gdmFsdWU7CiAgICAgICAgbmV3Tm9kZS0mZ3Q7bmV4dCA9IE5VTEw7CiAKICAgICAgICBpZiAocG9zID09IDEpIHsKICAgICAgICAgICAgbmV3Tm9kZS0mZ3Q7bmV4dCA9IGhlYWQ7CiAgICAgICAgICAgIGhlYWQgPSBuZXdOb2RlOwogICAgICAgICAgICBjb3V0ICZsdDsmbHQ7ICZxdW90O0VsZW1lbnQgaW5zZXJ0ZWQgc3VjY2Vzc2Z1bGx5IGF0IHBvc2l0aW9uIDFcbiZxdW90OzsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KIAogICAgICAgIG5vZGUqIHRlbXAgPSBoZWFkOwogICAgICAgIGZvciAoaW50IGkgPSAxOyBpICZsdDsgcG9zIC0gMSAmYW1wOyZhbXA7IHRlbXAgIT0gTlVMTDsgKytpKSB7CiAgICAgICAgICAgIHRlbXAgPSB0ZW1wLSZndDtuZXh0OwogICAgICAgIH0KIAogICAgICAgIGlmICh0ZW1wID09IE5VTEwpIHsKICAgICAgICAgICAgY291dCAmbHQ7Jmx0OyAmcXVvdDtQb3NpdGlvbiBvdXQgb2YgcmFuZ2VcbiZxdW90OzsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KIAogICAgICAgIG5ld05vZGUtJmd0O25leHQgPSB0ZW1wLSZndDtuZXh0OwogICAgICAgIHRlbXAtJmd0O25leHQgPSBuZXdOb2RlOwogICAgICAgIGNvdXQgJmx0OyZsdDsgJnF1b3Q7RWxlbWVudCBpbnNlcnRlZCBzdWNjZXNzZnVsbHkgYXQgcG9zaXRpb24gJnF1b3Q7ICZsdDsmbHQ7IHBvcyAmbHQ7Jmx0OyBlbmRsOwogICAgfQogCiAgICBib29sIHNlYXJjaChpbnQgdmFsdWUpIHsKICAgICAgICBub2RlKiB0ZW1wID0gaGVhZDsKICAgICAgICB3aGlsZSAodGVtcCAhPSBOVUxMKSB7CiAgICAgICAgICAgIGlmICh0ZW1wLSZndDtkYXRhID09IHZhbHVlKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgICAgfQogICAgICAgICAgICB0ZW1wID0gdGVtcC0mZ3Q7bmV4dDsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgfQogCiAgICB2b2lkIGRlbGV0ZUVsZW1lbnQoaW50IHZhbHVlKSB7CiAgICAgICAgbm9kZSogdGVtcCA9IGhlYWQ7CiAgICAgICAgbm9kZSogcHJldiA9IE5VTEw7CiAKICAgICAgICBpZiAodGVtcCAhPSBOVUxMICZhbXA7JmFtcDsgdGVtcC0mZ3Q7ZGF0YSA9PSB2YWx1ZSkgewogICAgICAgICAgICBoZWFkID0gdGVtcC0mZ3Q7bmV4dDsKICAgICAgICAgICAgZGVsZXRlIHRlbXA7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAKICAgICAgICB3aGlsZSAodGVtcCAhPSBOVUxMICZhbXA7JmFtcDsgdGVtcC0mZ3Q7ZGF0YSAhPSB2YWx1ZSkgewogICAgICAgICAgICBwcmV2ID0gdGVtcDsKICAgICAgICAgICAgdGVtcCA9IHRlbXAtJmd0O25leHQ7CiAgICAgICAgfQogCiAgICAgICAgaWYgKHRlbXAgPT0gTlVMTCkgewogICAgICAgICAgICBjb3V0ICZsdDsmbHQ7ICZxdW90O0VsZW1lbnQgbm90IGZvdW5kXG4mcXVvdDs7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAKICAgICAgICBwcmV2LSZndDtuZXh0ID0gdGVtcC0mZ3Q7bmV4dDsKICAgICAgICBkZWxldGUgdGVtcDsKICAgIH0KfTsKIAppbnQgbWFpbigpIHsKICAgIGxpbmtlZCBsaW5rOwogICAgaW50IG4sIGRhdGE7CiAKICAgIGNvdXQgJmx0OyZsdDsgJnF1b3Q7RW50ZXIgdGhlIG51bWJlciBvZiBlbGVtZW50cyB0byBhcHBlbmQ6ICZxdW90OzsKICAgIGNpbiAmZ3Q7Jmd0OyBuOwogICAgY291dCAmbHQ7Jmx0OyAmcXVvdDtFbnRlciAmcXVvdDsgJmx0OyZsdDsgbiAmbHQ7Jmx0OyAmcXVvdDsgZWxlbWVudHMgdG8gYXBwZW5kOlxuJnF1b3Q7OwogICAgZm9yIChpbnQgaSA9IDA7IGkgJmx0OyBuOyArK2kpIHsKICAgICAgICBjaW4gJmd0OyZndDsgZGF0YTsKICAgICAgICBsaW5rLmFwcGVuZChkYXRhKTsKICAgIH0KIAogICAgbGluay5kaXNwKCk7CiAKICAgIGludCBwb3MsIHZhbHVlOwogCiAgICBjb3V0ICZsdDsmbHQ7ICZxdW90O0VudGVyIHBvc2l0aW9uIGFuZCB2YWx1ZSB0byBpbnNlcnQ6ICZxdW90OzsKICAgIGNpbiAmZ3Q7Jmd0OyBwb3MgJmd0OyZndDsgdmFsdWU7CiAgICBsaW5rLmluc2VydEF0KHBvcywgdmFsdWUpOwogICAgbGluay5kaXNwKCk7CiAKICAgIGludCBzZWFyY2hWYWx1ZTsKICAgIGNvdXQgJmx0OyZsdDsgJnF1b3Q7RW50ZXIgdmFsdWUgdG8gc2VhcmNoOiAmcXVvdDs7CiAgICBjaW4gJmd0OyZndDsgc2VhcmNoVmFsdWU7CiAgICBpZiAobGluay5zZWFyY2goc2VhcmNoVmFsdWUpKSB7CiAgICAgICAgY291dCAmbHQ7Jmx0OyBzZWFyY2hWYWx1ZSAmbHQ7Jmx0OyAmcXVvdDsgZm91bmQgaW4gdGhlIGxpc3RcbiZxdW90OzsKICAgIH0gZWxzZSB7CiAgICAgICAgY291dCAmbHQ7Jmx0OyBzZWFyY2hWYWx1ZSAmbHQ7Jmx0OyAmcXVvdDsgbm90IGZvdW5kIGluIHRoZSBsaXN0XG4mcXVvdDs7CiAgICB9CiAKICAgIGludCBkdDsKICAgIGNvdXQgJmx0OyZsdDsgJnF1b3Q7RW50ZXIgdmFsdWUgdG8gZGVsZXRlOiAmcXVvdDs7CiAgICBjaW4gJmd0OyZndDsgZHQ7CiAgICBsaW5rLmRlbGV0ZUVsZW1lbnQoZHQpOwogICAgbGluay5kaXNwKCk7CiAKICAgIHJldHVybiAwOwp9
#include<bits/stdc++.h>
using namespace std;
class node {
public:
int data;
node* next;
};
class linked {
public:
node* head;
linked() {
head = NULL;
}
bool impty() {
return (head == NULL);
}
bool found(int value) {
bool f = false;
node* temp = head;
while (temp != NULL) {
if (temp->data == value) {
f = true;
break;
}
temp = temp->next;
}
return f;
}
void inserf(int v2) {
node* newnode = new node();
newnode->data = v2;
newnode->next = head;
head = newnode;
}
void append(int v3) {
node* newnode = new node();
newnode->data = v3;
newnode->next = NULL;
if (impty()) {
head = newnode;
} else {
node* temp = head;
while (temp->next != NULL) {
temp = temp->next;
}
temp->next = newnode;
}
}
void disp() {
if (impty()) {
cout << "No elements\n";
} else {
node* temp = head;
while (temp != NULL) {
cout << temp->data << " ";
temp = temp->next;
}
cout << endl;
}
}
void insertAt(int pos, int value) {
node* newNode = new node();
newNode->data = value;
newNode->next = NULL;
if (pos == 1) {
newNode->next = head;
head = newNode;
cout << "Element inserted successfully at position 1\n";
return;
}
node* temp = head;
for (int i = 1; i < pos - 1 && temp != NULL; ++i) {
temp = temp->next;
}
if (temp == NULL) {
cout << "Position out of range\n";
return;
}
newNode->next = temp->next;
temp->next = newNode;
cout << "Element inserted successfully at position " << pos << endl;
}
bool search(int value) {
node* temp = head;
while (temp != NULL) {
if (temp->data == value) {
return true;
}
temp = temp->next;
}
return false;
}
void deleteElement(int value) {
node* temp = head;
node* prev = NULL;
if (temp != NULL && temp->data == value) {
head = temp->next;
delete temp;
return;
}
while (temp != NULL && temp->data != value) {
prev = temp;
temp = temp->next;
}
if (temp == NULL) {
cout << "Element not found\n";
return;
}
prev->next = temp->next;
delete temp;
}
};
int main() {
linked link;
int n, data;
cout << "Enter the number of elements to append: ";
cin >> n;
cout << "Enter " << n << " elements to append:\n";
for (int i = 0; i < n; ++i) {
cin >> data;
link.append(data);
}
link.disp();
int pos, value;
cout << "Enter position and value to insert: ";
cin >> pos >> value;
link.insertAt(pos, value);
link.disp();
int searchValue;
cout << "Enter value to search: ";
cin >> searchValue;
if (link.search(searchValue)) {
cout << searchValue << " found in the list\n";
} else {
cout << searchValue << " not found in the list\n";
}
int dt;
cout << "Enter value to delete: ";
cin >> dt;
link.deleteElement(dt);
link.disp();
return 0;
}