Merging of 2 linked lists  #include<iostream.h> class linklist { private: struct node { int data; node *link; }*p; public: linklist(); void add(int num); void display(); int count(); void merge(linklist &l1,linklist &l2); ~linklist(); }; linklist::linklist() { p=NULL; } void linklist::add(int num) { node *temp,*r; temp=p; r=new node; r->data=num; if(p==NULL||p->data>num) { p=r; p->link=temp; } else { while(temp!=NULL) { if(temp->data<num&&(temp->link->data>num||temp->link==NULL)) { r->link=temp->link; temp->link=r; return ; } temp=temp->link; } r->link=NULL; temp->link=r; } } void linklist::display() { node *temp=p; cout<<endl; while(temp!=NULL) { cout<<temp->data<<" "; temp=temp->link; } } int linklist::count() { node *temp=p; int c=0; while(temp!=NULL) { temp=temp->link; c++; } return c; } void linklist::merge(linklist &l1,linklist &l2) { node *z; z=NULL; if(l1.p==NULL&&l2.p==NULL) return; while(l1.p!=NULL&&l2.p!=NULL) { if(p==NULL) { p=new node; z=p; } else { z->link=new node; z=z->link; } if(l1.p->data<l2.p->data) { z->data=l1.p->data; l1.p=l1.p->link; } else { if(l2.p->data<l1.p->data) { z->data=l2.p->data; l2.p=l2.p->link; } else { if(l1.p->data==l2.p->data) { z->data=l2.p->data; l1.p=l1.p->link; l2.p=l2.p->link; } } } } while(l1.p!=NULL) { z->link=new node; z=z->link; z->data=l1.p->data; l1.p=l1.p->link; } while(l2.p!=NULL) { z->link=new node; z=z->link; z->data=l2.p->data; l2.p=l2.p->link; } z->link=NULL; } linklist::~linklist() { node *q; while(p!=NULL) { q=p->link; delete p; p=q; } } void main() { linklist l1; l1.add(9); l1.add(12); l1.add(14); l1.add(17); l1.add(35); l1.add(61); l1.add(79); cout<<"\n elements in first linked list"; l1.display(); cout<<"\n no:of elements inlinked list:"<<l1.count(); linklist l2; l2.add(12); l2.add(17); l2.add(24); l2.add(36); l2.add(59); l2.add(64); l2.add(87); cout<<"\n elements in second linked list"; l2.display(); cout<<"\n no:of elements in linked list"<<l2.count(); linklist l3; l3.merge(l1,l2); cout<<"\n\n merged list"; l3.display(); cout<<"\n no:of elem,ents in the merged linked list:"<<l3.count(); }