#include <iostream>
using namespace std;
struct node{
int data;
node* next;
};
class linked_l{
private:
node *head,*tail;
public:
linked_l(){
head=NULL;
tail=NULL;
}
void add_n(int n){
node *temp=new node;
temp->data=n;
temp->next=NULL;
if(head==NULL){
head=temp;
tail=temp;
}
else{
tail->next=temp;
tail=tail->next;
}
}
void add_front(int d){
node *temp1=new node;
temp1->data=d;
temp1->next=NULL;
if(head==NULL){
head=temp1;
tail=temp1;
}
else{
temp1->next=head;
head=temp1;
}
}
void add_middle(node* pre,int g){
node *temp2=new node;
temp2->data=g;
temp2->next=pre->next;
pre->next=temp2;
}
node* gethead()
{
return head;
}
void display()
{
node* temp;
temp=head;
while(temp!=NULL)
{
cout<<temp->data;
temp=temp->next;
}
}
};
int main()
{
linked_l a;
a.add_n(1);
a.add_n(2);
a.add_n(3);
a.add_front(4);
//a.add_middle(temp1,6);
a.add_middle(a.gethead()->next);
a.display();
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwpzdHJ1Y3Qgbm9kZXsKCWludCBkYXRhOwoJbm9kZSogbmV4dDsKfTsKY2xhc3MgbGlua2VkX2x7Cglwcml2YXRlOgoJCW5vZGUgKmhlYWQsKnRhaWw7CgkJcHVibGljOgoJCQlsaW5rZWRfbCgpewoJCQkJaGVhZD1OVUxMOwoJCQkJdGFpbD1OVUxMOwoJCQl9CgkJdm9pZCBhZGRfbihpbnQgbil7CgkJCW5vZGUgKnRlbXA9bmV3IG5vZGU7CgkJCXRlbXAtPmRhdGE9bjsKCQkJdGVtcC0+bmV4dD1OVUxMOwoJCSAgICBpZihoZWFkPT1OVUxMKXsKCQkgICAgCWhlYWQ9dGVtcDsKCQkgICAgCXRhaWw9dGVtcDsKCQkJfQoJCQllbHNlewoJCQkJdGFpbC0+bmV4dD10ZW1wOwoJCQkJdGFpbD10YWlsLT5uZXh0OwoJCQl9CgkJCQoJCX0KCQl2b2lkIGFkZF9mcm9udChpbnQgZCl7CgkJCW5vZGUgKnRlbXAxPW5ldyBub2RlOwoJCQl0ZW1wMS0+ZGF0YT1kOwoJCQl0ZW1wMS0+bmV4dD1OVUxMOwoJCQlpZihoZWFkPT1OVUxMKXsKCQkJCWhlYWQ9dGVtcDE7CgkJCQl0YWlsPXRlbXAxOwoJCQl9CgkJCWVsc2V7CgkJCQl0ZW1wMS0+bmV4dD1oZWFkOwoJCQkJaGVhZD10ZW1wMTsKCQl9Cgl9CgkJdm9pZCBhZGRfbWlkZGxlKG5vZGUqIHByZSxpbnQgZyl7CgkKCQkJbm9kZSAqdGVtcDI9bmV3IG5vZGU7CgkJCXRlbXAyLT5kYXRhPWc7CgkJCXRlbXAyLT5uZXh0PXByZS0+bmV4dDsKCQkJcHJlLT5uZXh0PXRlbXAyOwoJCX0KCQlub2RlKiBnZXRoZWFkKCkKICAgIHsKICAgICAgICByZXR1cm4gaGVhZDsKICAgIH0KCQl2b2lkIGRpc3BsYXkoKQoJCXsKCQkJbm9kZSogdGVtcDsKCQkJdGVtcD1oZWFkOwoJCQl3aGlsZSh0ZW1wIT1OVUxMKQoJCQl7CgkJCQljb3V0PDx0ZW1wLT5kYXRhOwoJCQkJdGVtcD10ZW1wLT5uZXh0OwoJCQkJCX0JCgkJfQoJCQkKfTsKaW50IG1haW4oKQp7CglsaW5rZWRfbCBhOwoJCglhLmFkZF9uKDEpOwoJYS5hZGRfbigyKTsKCWEuYWRkX24oMyk7CglhLmFkZF9mcm9udCg0KTsKCS8vYS5hZGRfbWlkZGxlKHRlbXAxLDYpOwoJYS5hZGRfbWlkZGxlKGEuZ2V0aGVhZCgpLT5uZXh0KTsKCWEuZGlzcGxheSgpOwoJcmV0dXJuIDA7Cn0=
prog.cpp: In function ‘int main()’:
prog.cpp:74:32: error: no matching function for call to ‘linked_l::add_middle(node*&)’
a.add_middle(a.gethead()->next);
^
prog.cpp:42:8: note: candidate: void linked_l::add_middle(node*, int)
void add_middle(node* pre,int g){
^~~~~~~~~~
prog.cpp:42:8: note: candidate expects 2 arguments, 1 provided