#include<bits/stdc++.h>
#include<iostream>
using namespace std;
#define int long long
#define endl "\n"
void fastIO(void) {
ios_base::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
}
class node{
public:
int data;
node*next;
};
class linked_list{
public:
node*head=NULL;
void insert_first(int value){
node*newnode=new node();
newnode->data=value;
if(head==NULL){
newnode->next=NULL;
head=newnode;
}else{
newnode->next=head;
head=newnode;
}
}
void inseert_last(int value){
node*newnode=new node();
newnode->data=value;
if(head==NULL){
newnode->next=NULL;
head=newnode;
}else{
node*temp=head;
while(temp->next!=NULL){
temp=temp->next;
}
temp->next=newnode;
newnode->next=NULL;
}
}
void inseert_before(int value,int element){
node*newnode=new node();
newnode->data=value;
if(head==NULL){
newnode->next=NULL;
head=newnode;
}else{
node*temp=head;
while(temp!=NULL){
if(temp->next->data==element){
newnode->next=temp->next;
temp->next=newnode;
return;
}
temp=temp->next;
}
}
}
void insert_after(int value,int element){
node*newnode=new node();
newnode->data=value;
if(head==NULL){
newnode->next=NULL;
head=newnode;
}else{
node*temp=head;
while(temp!=NULL){
if(temp->data==element){
newnode->next=temp->next;
temp->next=newnode;
return;
}
temp=temp->next;
}
}
}
void delete_last(){
if(head==NULL){
cout<<"empty";
}else{
node*temp=head;
while(temp->next->next!=NULL){
temp=temp->next;
}
node*del=temp->next;
temp->next=NULL;
delete del;
}
}
void delete_first(){
if(head==NULL){
cout<<"empty";
}else{
node*temp=head;
head=head->next;
delete temp;
}
}
void countt(){
int counter=0;
if(head==NULL){
cout<<"empty";
}else{
node*temp=head;
while(temp!=NULL){
counter++;
temp=temp->next;
}
cout<< "\n count is :"<<counter<<endl;;
}
}
bool searchh(int value){
if(head==NULL){
cout<<"empty";
}else{
node*temp=head;
while(temp!=NULL){
if(temp->data==value){
return true;
}
temp=temp->next;
}
return false;
}
}
int mini(){
if(head==NULL){
cout<<"empty";
}else{
int mi=head->data;
node*temp=head;
while(temp!=NULL){
if(temp->data<mi){
mi=temp->data;
}
temp=temp->next;
}
return mi;
}
}
void peek(){
if(head==NULL){
cout<<"empty";
}else{
cout<<head->data<<endl;;
}
}
void display(){
if(head==NULL){
cout<<"empty";
}else{
node*temp=head;
while(temp!=NULL){
cout<<temp->data << " ";
temp=temp->next;
}
cout<< "NULL : ) ";
}
}
};
signed main() {
linked_list ll;
ll.insert_first(15);
ll.insert_first(25);
ll.insert_first(35);
ll.insert_first(45);
ll.inseert_last(20);
ll.inseert_before(555,35);
ll.insert_after(300,25);
ll.delete_first();
ll.delete_last();
ll.countt();
ll.peek();
cout<<ll.searchh(5)<<endl;;
cout<<ll.mini()<<endl;
ll.display();
}
CiNpbmNsdWRlPGJpdHMvc3RkYysrLmg+CiNpbmNsdWRlPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwojZGVmaW5lIGludCBsb25nIGxvbmcKI2RlZmluZSBlbmRsICJcbiIKdm9pZCBmYXN0SU8odm9pZCkgewogICAgaW9zX2Jhc2U6OnN5bmNfd2l0aF9zdGRpbyhmYWxzZSk7CiAgICBjaW4udGllKE5VTEwpOwogICAgY291dC50aWUoTlVMTCk7Cn0KY2xhc3Mgbm9kZXsKcHVibGljOgogICAgaW50IGRhdGE7CiAgICBub2RlKm5leHQ7Cn07CmNsYXNzIGxpbmtlZF9saXN0ewpwdWJsaWM6CiAgICBub2RlKmhlYWQ9TlVMTDsKICAgIHZvaWQgaW5zZXJ0X2ZpcnN0KGludCB2YWx1ZSl7CiAgICAgICAgbm9kZSpuZXdub2RlPW5ldyBub2RlKCk7CiAgICAgICAgbmV3bm9kZS0+ZGF0YT12YWx1ZTsKCiAgICAgICAgaWYoaGVhZD09TlVMTCl7CiAgICAgICAgICAgICAgICBuZXdub2RlLT5uZXh0PU5VTEw7CiAgICAgICAgICAgICAgICBoZWFkPW5ld25vZGU7CgogICAgICAgIH1lbHNlewogICAgICAgICAgICBuZXdub2RlLT5uZXh0PWhlYWQ7CiAgICAgICAgICAgIGhlYWQ9bmV3bm9kZTsKCiAgICAgICAgfQoKCgogICAgfQogICAgdm9pZCBpbnNlZXJ0X2xhc3QoaW50IHZhbHVlKXsKICAgICAgICBub2RlKm5ld25vZGU9bmV3IG5vZGUoKTsKICAgICAgICBuZXdub2RlLT5kYXRhPXZhbHVlOwogICAgICAgIGlmKGhlYWQ9PU5VTEwpewogICAgICAgICAgICAgICAgbmV3bm9kZS0+bmV4dD1OVUxMOwogICAgICAgIGhlYWQ9bmV3bm9kZTsKCiAgICAgICAgICAgfWVsc2V7CiAgICAgICAgICAgICAgICBub2RlKnRlbXA9aGVhZDsKICAgICAgICAgICAgICAgIHdoaWxlKHRlbXAtPm5leHQhPU5VTEwpewogICAgICAgICAgICAgICAgICAgIHRlbXA9dGVtcC0+bmV4dDsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIHRlbXAtPm5leHQ9bmV3bm9kZTsKICAgICAgICAgICAgICAgIG5ld25vZGUtPm5leHQ9TlVMTDsKCiAgICAgICAgICAgfQoKICAgIH0KICAgIHZvaWQgaW5zZWVydF9iZWZvcmUoaW50IHZhbHVlLGludCBlbGVtZW50KXsKICAgICAgICBub2RlKm5ld25vZGU9bmV3IG5vZGUoKTsKICAgICAgICBuZXdub2RlLT5kYXRhPXZhbHVlOwogICAgICAgIGlmKGhlYWQ9PU5VTEwpewogICAgICAgICAgICBuZXdub2RlLT5uZXh0PU5VTEw7CiAgICAgICAgICAgIGhlYWQ9bmV3bm9kZTsKCiAgICAgICAgfWVsc2V7CiAgICAgICAgICAgIG5vZGUqdGVtcD1oZWFkOwogICAgICAgICAgICB3aGlsZSh0ZW1wIT1OVUxMKXsKCiAgICAgICAgICAgICAgICBpZih0ZW1wLT5uZXh0LT5kYXRhPT1lbGVtZW50KXsKICAgICAgbmV3bm9kZS0+bmV4dD10ZW1wLT5uZXh0OwogICAgICAgICAgICB0ZW1wLT5uZXh0PW5ld25vZGU7CiAgICAgICAgICAgIHJldHVybjsKCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB0ZW1wPXRlbXAtPm5leHQ7CiAgICAgICAgICAgIH0KCgogICAgICAgIH0KCgogICAgfQogICAgdm9pZCBpbnNlcnRfYWZ0ZXIoaW50IHZhbHVlLGludCBlbGVtZW50KXsKICAgICAgICBub2RlKm5ld25vZGU9bmV3IG5vZGUoKTsKICAgICAgICBuZXdub2RlLT5kYXRhPXZhbHVlOwogICAgICAgIGlmKGhlYWQ9PU5VTEwpewogICAgICAgICAgICBuZXdub2RlLT5uZXh0PU5VTEw7CiAgICAgICAgICAgIGhlYWQ9bmV3bm9kZTsKICAgICAgICB9ZWxzZXsKICAgICAgICBub2RlKnRlbXA9aGVhZDsKICAgICAgICB3aGlsZSh0ZW1wIT1OVUxMKXsKICAgICAgICBpZih0ZW1wLT5kYXRhPT1lbGVtZW50KXsKICAgICAgICAgICAgICAgICBuZXdub2RlLT5uZXh0PXRlbXAtPm5leHQ7CiAgICAgICAgICAgIHRlbXAtPm5leHQ9bmV3bm9kZTsKcmV0dXJuOwoKICAgICAgICB9CiAgICAgICAgdGVtcD10ZW1wLT5uZXh0OwoKICAgICAgICB9CiAgICAgICAgfQogICAgfQogICAgdm9pZCBkZWxldGVfbGFzdCgpewogICAgICAgIGlmKGhlYWQ9PU5VTEwpewogICAgICAgICAgICBjb3V0PDwiZW1wdHkiOwogICAgICAgIH1lbHNlewogICAgICAgICAgICBub2RlKnRlbXA9aGVhZDsKICAgICAgICAgICAgd2hpbGUodGVtcC0+bmV4dC0+bmV4dCE9TlVMTCl7CiAgICAgICAgICAgICAgICB0ZW1wPXRlbXAtPm5leHQ7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgbm9kZSpkZWw9dGVtcC0+bmV4dDsKICAgICAgICAgICAgdGVtcC0+bmV4dD1OVUxMOwogICAgICAgICAgICBkZWxldGUgZGVsOwoKCiAgICAgICAgfQoKCgoKICAgIH0KICAgIHZvaWQgZGVsZXRlX2ZpcnN0KCl7CiAgICAgICAgIGlmKGhlYWQ9PU5VTEwpewogICAgICAgICAgICBjb3V0PDwiZW1wdHkiOwogICAgICAgIH1lbHNlewogICAgICAgICAgICBub2RlKnRlbXA9aGVhZDsKICAgICAgICAgICAgaGVhZD1oZWFkLT5uZXh0OwogICAgICAgICAgICBkZWxldGUgdGVtcDsKCgoKICAgICAgICB9CgoKCiAgICB9CiAgICB2b2lkIGNvdW50dCgpewogICAgICAgIGludCBjb3VudGVyPTA7CiAgICAgICAgIGlmKGhlYWQ9PU5VTEwpewogICAgICAgICAgICBjb3V0PDwiZW1wdHkiOwogICAgICAgIH1lbHNlewogICAgICAgIG5vZGUqdGVtcD1oZWFkOwogICAgICAgIHdoaWxlKHRlbXAhPU5VTEwpewogICAgICAgIGNvdW50ZXIrKzsKICAgICAgICB0ZW1wPXRlbXAtPm5leHQ7CgogICAgICAgIH0KICAgICAgICBjb3V0PDwgIlxuIGNvdW50IGlzIDoiPDxjb3VudGVyPDxlbmRsOzsKCgogICAgICAgIH0KCgoKICAgIH0KICAgYm9vbCBzZWFyY2hoKGludCB2YWx1ZSl7CiAgICAgICAgIGlmKGhlYWQ9PU5VTEwpewogICAgICAgICAgICBjb3V0PDwiZW1wdHkiOwogICAgICAgIH1lbHNlewogICAgICAgICAgICBub2RlKnRlbXA9aGVhZDsKICAgICAgICAgICAgd2hpbGUodGVtcCE9TlVMTCl7CiAgICAgICAgICAgICAgICBpZih0ZW1wLT5kYXRhPT12YWx1ZSl7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB0ZW1wPXRlbXAtPm5leHQ7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwoKCiAgICAgICAgIH0KCgoKICAgIH0KaW50IG1pbmkoKXsKICAgICAgICAgIGlmKGhlYWQ9PU5VTEwpewogICAgICAgICAgICBjb3V0PDwiZW1wdHkiOwogICAgICAgIH1lbHNlewogICAgICAgICAgICBpbnQgbWk9aGVhZC0+ZGF0YTsKICAgICAgICAgICAgbm9kZSp0ZW1wPWhlYWQ7CiAgICAgICAgICAgIHdoaWxlKHRlbXAhPU5VTEwpewogICAgICAgICAgICAgICAgaWYodGVtcC0+ZGF0YTxtaSl7CiAgICAgICAgICAgICAgICAgICAgbWk9dGVtcC0+ZGF0YTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIHRlbXA9dGVtcC0+bmV4dDsKICAgICAgICAgICAgfQogICAgICAgICAgICByZXR1cm4gbWk7CgoKICAgICAgICB9CgoKCiAgICB9CiAgICB2b2lkIHBlZWsoKXsKICAgICAgICAgIGlmKGhlYWQ9PU5VTEwpewogICAgICAgICAgICBjb3V0PDwiZW1wdHkiOwogICAgICAgIH1lbHNlewoKICAgICAgICBjb3V0PDxoZWFkLT5kYXRhPDxlbmRsOzsKICAgICAgICB9CgoKCiAgICB9CiAgICB2b2lkIGRpc3BsYXkoKXsKICAgICAgICAgIGlmKGhlYWQ9PU5VTEwpewogICAgICAgICAgICBjb3V0PDwiZW1wdHkiOwogICAgICAgIH1lbHNlewogICAgICAgICAgICAgbm9kZSp0ZW1wPWhlYWQ7CiAgICAgICAgICAgIHdoaWxlKHRlbXAhPU5VTEwpewogICAgICAgICAgICAgICAgICAgIGNvdXQ8PHRlbXAtPmRhdGEgPDwgIiAiOwogICAgICAgICAgICAgICAgICAgIHRlbXA9dGVtcC0+bmV4dDsKICAgICAgICAgICAgfQogICAgICAgICAgICBjb3V0PDwgIk5VTEwgOiApICI7CgoKICAgICAgICB9CgoKICAgIH0KCn07CgpzaWduZWQgbWFpbigpIHsKCmxpbmtlZF9saXN0IGxsOwpsbC5pbnNlcnRfZmlyc3QoMTUpOwpsbC5pbnNlcnRfZmlyc3QoMjUpOwpsbC5pbnNlcnRfZmlyc3QoMzUpOwpsbC5pbnNlcnRfZmlyc3QoNDUpOwoKbGwuaW5zZWVydF9sYXN0KDIwKTsKbGwuaW5zZWVydF9iZWZvcmUoNTU1LDM1KTsKbGwuaW5zZXJ0X2FmdGVyKDMwMCwyNSk7CgpsbC5kZWxldGVfZmlyc3QoKTsKbGwuZGVsZXRlX2xhc3QoKTsKbGwuY291bnR0KCk7CmxsLnBlZWsoKTsKIGNvdXQ8PGxsLnNlYXJjaGgoNSk8PGVuZGw7Owpjb3V0PDxsbC5taW5pKCk8PGVuZGw7CmxsLmRpc3BsYXkoKTsKCgoKCgoKCgogICAgfQo=