#include<iostream>
using namespace std;
struct sll
{
int data;
};
typedef struct sllnode;
{
public:
node*create(int);
node*creatennodes(int);
void display(node*);
node*find(node *, int);
node*IAB(node*,int);
node*IAE(node*,int);
node*IAV(node*,int,int);
node*IAP(node*,int,int);
node*DAB(node*);
node*DAE(node*);
node*DAV(node*,int);
node*DAP(node*,int);
node*reverse(node*);
node*concate(node*,node*);
};
{
node*temp=new node;
temp->data=val;
return temp;
}
node
* list::find(node
*first
,intele
){
while(first!=NULL)
{
if(first->data==ele)
break;
}
return first;
}
node
* list::IAB(node
*first
,intele
){
node *temp=create(ele);
if(first!=NULL)
return temp;
}
node
* list::IAE(node
*first
,intele
){
node *temp=create(ele);
node *t=first;
return first;
}
node
* list::DAB(node
*first
){
if(first!=NULL)
}
{
node *pre=NULL;
node *t=first;
if(t->data==val)
{
t=DAB(t);
return t;
}
while(t!=NULL)
{
if(t->data==val)
break;
pre=t;
}
if(t==NULL)
cout<<"given value is not found";
else
return first;
}
{
node *i,*j;
int t;
for(i
=first
;i
!=NULL;i
=i
->next) if(i->data>j->data)
{
t=i->data;
i->data=j->data;
j->data=t;
}
return first;
}
node
*list::reverse(node
*first
){
node *rev=NULL;
while(first!=NULL)
{
rev=IAB(rev,first->data);
}
return rev;
}
node
* list ::creatennodes(int n
){
node *temp,*first;
cout<<"Enter a first node value: ";
cin>>val;
first=temp=create(val);
for(i=2;i<=n;i++)
{
cout<<"Enter a next node value: ";
cin>>val;
}
return first;
}
void
list ::display(node
*first
){
cout<<"\nlist= ";
while(first!=NULL)
{
cout<<first->data<<"\t";
}
cout<<endl;
}
{
int c=0;
while(first!=NULL)
{
c++;
}
return c;
}
{
node *temp=create(ele);
node *t=find(first,val);
if(t!=NULL)
{
}
else
cout<<"Element not found";
return first;
}
node
* list::IAP(node
*first
, intele
, intpos
){
node *temp=create(ele);
node *t=first;
if(pos>c+1 ||c==0)
{
cout<<"IAP not possible";
return first;
}
{
first=IAB(first,ele);
return first;
}
{
first=IAE(first,ele);
return first;
}
else
{
for(i=1; i<pos-1;i++)
return first;
}
}
node
* list::DAE(node
*first
){
node *t=first;
node *pre=NULL;
return NULL;
{
pre=t;
}
return first;
}
node
* list::DAP(node
*first
, intpos
){
node *t=first;
intc,i;
if(c==0||pos>c)
{
cout<<"deletion is not possible";
return first;
}
{
first=DAB(first);
return first;
}
{
first=DAE(first);
return first;
}
else
{
for(i=1;i<pos-1;i++)
{
}
return first;
}
}
node
*list::concate(node
*first
,node
*second
){
node*t=first;
{
}
return first;
}
int main()
{
node *first,*temp,*second,*third;
do
{
cout<<"\n\n1.create n nodes\n
2.Display\n3.Count\n4.Find\n";
cout<<"5.IAB\n6.IAE\n7.IAV\n8.IAP\n";
cout<<"9.DAB\n10.DAE\n11.DAV\n12.DAP\n
13.sort\n 14.reverse\n";
cout<<"15.concatenate\n16.Exit\n";
cout<<"Enter your choice:";
cin>>ch;
switch(ch)
{
case 1:
cout<<"Enter n value: ";
cin>>n;
first=l.creatennodes(n);
break;
case 2:
l.display(first);
break;
case 3:
cout<<"total no.of nodes="<<c;
break;
case 4:
cout<<"Enter element to be find:";
cin>>ele;
temp=l.find(first,ele);
if(temp!=NULL)
cout<<"Element found";
else
cout<<"Element not found";
break;
case 5:
cout<<"Enter element to be IAB:";
cin>>ele;
first=l.IAB(first,ele);
cout<<"After IAB the elements are";
l.display(first);
break;
case 12:
cout<<"enter position to be delete:";
cout<<"after deleting elements are:";
l.display(first);
break;
case 13:
cout<<"after sorting the elements are";
l.display(first);
break;
case 14:
first=l.reverse(first);
cout<<"after sorting the elements are";
l.display(first);
break;
case 15:
cout<<"Enter second list n value:";
cin>>n;
second=l.creatennodes(n);
third=l.concate(first,second);
cout<<"After concatenate the list is:\n";
l.display(third);
break;
default:
cout<<"Invalid choice";
}
}while(ch<17);
}
I2luY2x1ZGU8aW9zdHJlYW0+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CnN0cnVjdCBzbGwKewppbnQgZGF0YTsKc3RydWN0IG5vZGUqbmV4dDsKfTsKdHlwZWRlZiBzdHJ1Y3Qgc2xsbm9kZTsKY2xhc3MgbGlzdAp7CiAgICBwdWJsaWM6CiAgICBub2RlKmNyZWF0ZShpbnQpOwogICAgbm9kZSpjcmVhdGVubm9kZXMoaW50KTsKICAgIHZvaWQgZGlzcGxheShub2RlKik7CglpbnQgY291bnQobm9kZSopOwogCW5vZGUqZmluZChub2RlICosIGludCk7CiAgICBub2RlKklBQihub2RlKixpbnQpOwogICAgbm9kZSpJQUUobm9kZSosaW50KTsKICAgIG5vZGUqSUFWKG5vZGUqLGludCxpbnQpOwogICAgbm9kZSpJQVAobm9kZSosaW50LGludCk7CiAgICBub2RlKkRBQihub2RlKik7CiAgICBub2RlKkRBRShub2RlKik7CiAgICBub2RlKkRBVihub2RlKixpbnQpOwogICAgbm9kZSpEQVAobm9kZSosaW50KTsKICAgIG5vZGUqc29ydChub2RlKik7CiAgICBub2RlKnJldmVyc2Uobm9kZSopOwogICAgbm9kZSpjb25jYXRlKG5vZGUqLG5vZGUqKTsKfTsKbm9kZSpsaXN0OjpjcmVhdGUoaW50dmFsKQp7CiAgICBub2RlKnRlbXA9bmV3IG5vZGU7CiAgICB0ZW1wLT5kYXRhPXZhbDsKICAgIHRlbXAtPm5leHQ9TlVMTDsKICAgIHJldHVybiB0ZW1wOwp9Cm5vZGUqIGxpc3Q6OmZpbmQobm9kZSAqZmlyc3QsaW50ZWxlKQp7CiAgICB3aGlsZShmaXJzdCE9TlVMTCkKICAgIHsKICAgIAlpZihmaXJzdC0+ZGF0YT09ZWxlKQogICAgIAlicmVhazsKICAgICAgICBmaXJzdD1maXJzdC0+bmV4dDsKICAgIH0KICAgIHJldHVybiBmaXJzdDsKfQpub2RlKiBsaXN0OjpJQUIobm9kZSAqZmlyc3QsaW50ZWxlKQp7CiAgICBub2RlICp0ZW1wPWNyZWF0ZShlbGUpOwogICAgaWYoZmlyc3QhPU5VTEwpCiAgICB0ZW1wLT5uZXh0PWZpcnN0OwogICAgcmV0dXJuIHRlbXA7Cn0Kbm9kZSogbGlzdDo6SUFFKG5vZGUgKmZpcnN0LGludGVsZSkKewogICAgbm9kZSAqdGVtcD1jcmVhdGUoZWxlKTsKICAgIG5vZGUgKnQ9Zmlyc3Q7CiAgICB3aGlsZSh0LT5uZXh0IT1OVUxMKQogICAgdD10LT5uZXh0OwogICAgdC0+bmV4dD10ZW1wOwogICAgcmV0dXJuIGZpcnN0Owp9Cm5vZGUqIGxpc3Q6OkRBQihub2RlICpmaXJzdCkKewogICAgaWYoZmlyc3QhPU5VTEwpCiAgICByZXR1cm4gZmlyc3QtPm5leHQ7Cn0Kbm9kZSogbGlzdDo6REFWKG5vZGUgKmZpcnN0LCBpbnR2YWwpCnsKIG5vZGUgKnByZT1OVUxMOwogbm9kZSAqdD1maXJzdDsKIGlmKHQtPmRhdGE9PXZhbCkKIHsKICB0PURBQih0KTsKICByZXR1cm4gdDsKIH0KIHdoaWxlKHQhPU5VTEwpCiB7CiAgaWYodC0+ZGF0YT09dmFsKQogIGJyZWFrOwogIHByZT10OwogIHQ9dC0+bmV4dDsKIH0KIGlmKHQ9PU5VTEwpCiBjb3V0PDwiZ2l2ZW4gdmFsdWUgaXMgbm90IGZvdW5kIjsKIGVsc2UKIHByZS0+bmV4dD10LT5uZXh0OwogcmV0dXJuIGZpcnN0Owp9Cm5vZGUgKmxpc3Q6OnNvcnQobm9kZSAqZmlyc3QpCnsKICBub2RlICppLCpqOwogIGludCB0OwogIGZvcihpPWZpcnN0O2khPU5VTEw7aT1pLT5uZXh0KQogIGZvcihqPWktPm5leHQ7aiE9TlVMTDtqPWotPm5leHQpCiAgaWYoaS0+ZGF0YT5qLT5kYXRhKQogIHsKICAgICB0PWktPmRhdGE7CgkgaS0+ZGF0YT1qLT5kYXRhOwogICAgIGotPmRhdGE9dDsKICB9CiAgIHJldHVybiBmaXJzdDsKfQpub2RlICpsaXN0OjpyZXZlcnNlKG5vZGUgKmZpcnN0KQp7CiAgbm9kZSAqcmV2PU5VTEw7CiAgd2hpbGUoZmlyc3QhPU5VTEwpCiAgewogICAgcmV2PUlBQihyZXYsZmlyc3QtPmRhdGEpOwogICAgZmlyc3Q9Zmlyc3QtPm5leHQ7CiAgfQogICByZXR1cm4gcmV2Owp9Cm5vZGUqIGxpc3QgOjpjcmVhdGVubm9kZXMoaW50IG4pCnsKICAgIG5vZGUgKnRlbXAsKmZpcnN0OwoJaW50dmFsLGk7Cgljb3V0PDwiRW50ZXIgYSBmaXJzdCBub2RlIHZhbHVlOiAiOwoJY2luPj52YWw7CiAgICBmaXJzdD10ZW1wPWNyZWF0ZSh2YWwpOwogICAgZm9yKGk9MjtpPD1uO2krKykKICAgIHsKCQljb3V0PDwiRW50ZXIgYSBuZXh0IG5vZGUgdmFsdWU6ICI7CgkJY2luPj52YWw7CiAgCQl0ZW1wLT5uZXh0PWNyZWF0ZSh2YWwpOwogICAgICAgIHRlbXA9dGVtcC0+bmV4dDsKICAgIH0KICAgIHJldHVybiBmaXJzdDsKfQp2b2lkIGxpc3QgOjpkaXNwbGF5KG5vZGUgKmZpcnN0KQp7Cgljb3V0PDwiXG5saXN0PSAiOwogICAgd2hpbGUoZmlyc3QhPU5VTEwpCiAgICB7CgkJCWNvdXQ8PGZpcnN0LT5kYXRhPDwiXHQiOwogICAgICAgICAgICBmaXJzdD1maXJzdC0+bmV4dDsKICAgIH0KCWNvdXQ8PGVuZGw7Cn0KaW50IGxpc3Q6OmNvdW50KG5vZGUgKmZpcnN0KQp7CglpbnQgYz0wOwogICAgd2hpbGUoZmlyc3QhPU5VTEwpCiAgICB7CgkJCWMrKzsKICAgICAgICAgICAgZmlyc3Q9Zmlyc3QtPm5leHQ7CiAgICB9CiAgICByZXR1cm4gYzsKfQpub2RlKiBsaXN0OjpJQVYobm9kZSAqZmlyc3QsIGludGVsZSwgaW50dmFsKQp7CiAgICBub2RlICp0ZW1wPWNyZWF0ZShlbGUpOwogICAgbm9kZSAqdD1maW5kKGZpcnN0LHZhbCk7CiAgICBpZih0IT1OVUxMKQogICAgewoJCXRlbXAtPm5leHQ9dC0+bmV4dDsKCQl0LT5uZXh0PXRlbXA7CiAgICB9CiAgICBlbHNlCgljb3V0PDwiRWxlbWVudCBub3QgZm91bmQiOwogICAgcmV0dXJuIGZpcnN0Owp9Cm5vZGUqIGxpc3Q6OklBUChub2RlICpmaXJzdCwgaW50ZWxlLCBpbnRwb3MpCnsKICAgIG5vZGUgKnRlbXA9Y3JlYXRlKGVsZSk7CiAgICBub2RlICp0PWZpcnN0OwoJaW50aSxjPWNvdW50KGZpcnN0KTsKICAgIGlmKHBvcz5jKzEgfHxjPT0wKQogICAgewoJCWNvdXQ8PCJJQVAgbm90IHBvc3NpYmxlIjsKICAgICAgICByZXR1cm4gZmlyc3Q7CiAgICB9CiAgICBlbHNlIGlmKHBvcz09MSkKICAgIHsKICAgICAgICBmaXJzdD1JQUIoZmlyc3QsZWxlKTsKICAgICAgICByZXR1cm4gZmlyc3Q7CiAgICB9CiAgICBlbHNlIGlmKHBvcz09YysxKQogICAgewogICAgICAgIGZpcnN0PUlBRShmaXJzdCxlbGUpOwogICAgICAgIHJldHVybiBmaXJzdDsKICAgIH0KICAgIGVsc2UKICAgIHsKICAgICAgICBmb3IoaT0xOyBpPHBvcy0xO2krKykKICAgICAgICB0PXQtPm5leHQ7CiAgICAgICAgdGVtcC0+bmV4dD10LT5uZXh0OwogICAgICAgIHQtPm5leHQ9dGVtcDsKICAgICAgICByZXR1cm4gZmlyc3Q7CiAgICB9Cn0Kbm9kZSogbGlzdDo6REFFKG5vZGUgKmZpcnN0KQp7CiAgICBub2RlICp0PWZpcnN0OwogICAgbm9kZSAqcHJlPU5VTEw7CiAgICBpZih0LT5uZXh0PT1OVUxMKQogICAgcmV0dXJuIE5VTEw7CiAgICB3aGlsZSh0LT5uZXh0IT1OVUxMKQogICAgewogICAgICAgICAgICBwcmU9dDsKICAgICAgICAgICAgdD10LT5uZXh0OwogICAgfQogICAgcHJlLT5uZXh0PU5VTEw7CiAgICByZXR1cm4gZmlyc3Q7Cn0Kbm9kZSogbGlzdDo6REFQKG5vZGUgKmZpcnN0LCBpbnRwb3MpCnsKICBub2RlICp0PWZpcnN0OwogIGludGMsaTsKICBjPWNvdW50KGZpcnN0KTsKICBpZihjPT0wfHxwb3M+YykKICB7Cgljb3V0PDwiZGVsZXRpb24gaXMgbm90IHBvc3NpYmxlIjsKICAgIHJldHVybiBmaXJzdDsKICB9CiAgZWxzZSBpZihwb3M9PTEpCiAgewogICAJZmlyc3Q9REFCKGZpcnN0KTsKICAgCXJldHVybiBmaXJzdDsKICB9CiAgZWxzZSBpZihjPT1wb3MpCiAgewogICBmaXJzdD1EQUUoZmlyc3QpOwogICByZXR1cm4gZmlyc3Q7CiAgfQogIGVsc2UKICB7CiAgIGZvcihpPTE7aTxwb3MtMTtpKyspCiAgIHsKICAgIHQ9dC0+bmV4dDsKICAgfQogICB0LT5uZXh0PXQtPm5leHQtPm5leHQ7CiAgIHJldHVybiBmaXJzdDsKICB9Cn0Kbm9kZSpsaXN0Ojpjb25jYXRlKG5vZGUqZmlyc3Qsbm9kZSpzZWNvbmQpCnsKCSBub2RlKnQ9Zmlyc3Q7CiAgICAgd2hpbGUodC0+bmV4dCE9TlVMTCkKIHsKICAgICAgICB0PXQtPm5leHQ7CiB9CiB0LT5uZXh0PXNlY29uZDsKIHJldHVybiBmaXJzdDsKfQoKaW50IG1haW4oKQp7CiAgICBsaXN0IGw7CmludG4sY2gsZWxlLGMsdmFsLHBvczsKICAgIG5vZGUgKmZpcnN0LCp0ZW1wLCpzZWNvbmQsKnRoaXJkOwoKICAgIGRvCiAgICB7CmNvdXQ8PCJcblxuMS5jcmVhdGUgbiBub2Rlc1xuCjIuRGlzcGxheVxuMy5Db3VudFxuNC5GaW5kXG4iOwpjb3V0PDwiNS5JQUJcbjYuSUFFXG43LklBVlxuOC5JQVBcbiI7CmNvdXQ8PCI5LkRBQlxuMTAuREFFXG4xMS5EQVZcbjEyLkRBUFxuIAoxMy5zb3J0XG4gMTQucmV2ZXJzZVxuIjsKY291dDw8IjE1LmNvbmNhdGVuYXRlXG4xNi5FeGl0XG4iOwpjb3V0PDwiRW50ZXIgeW91ciBjaG9pY2U6IjsKY2luPj5jaDsKICAgICAgICBzd2l0Y2goY2gpCiAgICAgICAgewogICAgICAgICAgICBjYXNlIDE6CmNvdXQ8PCJFbnRlciBuIHZhbHVlOiAiOwpjaW4+Pm47CiAgICAgICAgICAgICAgICAgICAgZmlyc3Q9bC5jcmVhdGVubm9kZXMobik7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgMjoKbC5kaXNwbGF5KGZpcnN0KTsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAzOgogICAgICAgICAgICAgICAgICAgIGM9bC5jb3VudChmaXJzdCk7CmNvdXQ8PCJ0b3RhbCBuby5vZiBub2Rlcz0iPDxjOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlIDQ6CmNvdXQ8PCJFbnRlciBlbGVtZW50IHRvIGJlIGZpbmQ6IjsKY2luPj5lbGU7CiAgICAgICAgICAgICAgICAgICAgdGVtcD1sLmZpbmQoZmlyc3QsZWxlKTsKICAgICAgICAgICAgICAgICAgICBpZih0ZW1wIT1OVUxMKQpjb3V0PDwiRWxlbWVudCBmb3VuZCI7CiAgICAgICAgICAgICAgICAgICAgZWxzZQpjb3V0PDwiRWxlbWVudCBub3QgZm91bmQiOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlIDU6CmNvdXQ8PCJFbnRlciBlbGVtZW50IHRvIGJlIElBQjoiOwpjaW4+PmVsZTsKICAgICAgICAgICAgICAgICAgICBmaXJzdD1sLklBQihmaXJzdCxlbGUpOwpjb3V0PDwiQWZ0ZXIgSUFCIHRoZSBlbGVtZW50cyBhcmUiOwpsLmRpc3BsYXkoZmlyc3QpOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlIDEyOiAgICAKCWNvdXQ8PCJlbnRlciBwb3NpdGlvbiB0byBiZSBkZWxldGU6IjsKY2luPj5wb3M7CiAgICAgICAgICAgICAgICAgICAgZmlyc3Q9bC5EQVAoZmlyc3QscG9zKTsKY291dDw8ImFmdGVyIGRlbGV0aW5nIGVsZW1lbnRzIGFyZToiOwpsLmRpc3BsYXkoZmlyc3QpOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgY2FzZSAxMzogICAKZmlyc3Q9bC5zb3J0KGZpcnN0KTsKY291dDw8ImFmdGVyIHNvcnRpbmcgdGhlIGVsZW1lbnRzIGFyZSI7CmwuZGlzcGxheShmaXJzdCk7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CgogICAgICAgICAgICBjYXNlIDE0OiAgIAkJCQkJCmZpcnN0PWwucmV2ZXJzZShmaXJzdCk7CmNvdXQ8PCJhZnRlciBzb3J0aW5nIHRoZSBlbGVtZW50cyBhcmUiOwpsLmRpc3BsYXkoZmlyc3QpOwogICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgMTU6CmNvdXQ8PCJFbnRlciBzZWNvbmQgbGlzdCBuIHZhbHVlOiI7CmNpbj4+bjsKICAgICAgICAgICAgICAgICAgIHNlY29uZD1sLmNyZWF0ZW5ub2RlcyhuKTsKICAgICAgICAgICAgICAgICAgIHRoaXJkPWwuY29uY2F0ZShmaXJzdCxzZWNvbmQpOwpjb3V0PDwiQWZ0ZXIgY29uY2F0ZW5hdGUgdGhlIGxpc3QgaXM6XG4iOwpsLmRpc3BsYXkodGhpcmQpOwogICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgMTY6ICAgZXhpdCgwKTsKICAgICAgICAgICAgZGVmYXVsdDoKCQljb3V0PDwiSW52YWxpZCBjaG9pY2UiOwogICAgICAgIH0KICAgIH13aGlsZShjaDwxNyk7Cn0KCQ==
#include<iostream>
using namespace std;
struct sll
{
int data;
struct node*next;
};
typedef struct sllnode;
class list
{
public:
node*create(int);
node*creatennodes(int);
void display(node*);
int count(node*);
node*find(node *, int);
node*IAB(node*,int);
node*IAE(node*,int);
node*IAV(node*,int,int);
node*IAP(node*,int,int);
node*DAB(node*);
node*DAE(node*);
node*DAV(node*,int);
node*DAP(node*,int);
node*sort(node*);
node*reverse(node*);
node*concate(node*,node*);
};
node*list::create(intval)
{
node*temp=new node;
temp->data=val;
temp->next=NULL;
return temp;
}
node* list::find(node *first,intele)
{
while(first!=NULL)
{
if(first->data==ele)
break;
first=first->next;
}
return first;
}
node* list::IAB(node *first,intele)
{
node *temp=create(ele);
if(first!=NULL)
temp->next=first;
return temp;
}
node* list::IAE(node *first,intele)
{
node *temp=create(ele);
node *t=first;
while(t->next!=NULL)
t=t->next;
t->next=temp;
return first;
}
node* list::DAB(node *first)
{
if(first!=NULL)
return first->next;
}
node* list::DAV(node *first, intval)
{
node *pre=NULL;
node *t=first;
if(t->data==val)
{
t=DAB(t);
return t;
}
while(t!=NULL)
{
if(t->data==val)
break;
pre=t;
t=t->next;
}
if(t==NULL)
cout<<"given value is not found";
else
pre->next=t->next;
return first;
}
node *list::sort(node *first)
{
node *i,*j;
int t;
for(i=first;i!=NULL;i=i->next)
for(j=i->next;j!=NULL;j=j->next)
if(i->data>j->data)
{
t=i->data;
i->data=j->data;
j->data=t;
}
return first;
}
node *list::reverse(node *first)
{
node *rev=NULL;
while(first!=NULL)
{
rev=IAB(rev,first->data);
first=first->next;
}
return rev;
}
node* list ::creatennodes(int n)
{
node *temp,*first;
intval,i;
cout<<"Enter a first node value: ";
cin>>val;
first=temp=create(val);
for(i=2;i<=n;i++)
{
cout<<"Enter a next node value: ";
cin>>val;
temp->next=create(val);
temp=temp->next;
}
return first;
}
void list ::display(node *first)
{
cout<<"\nlist= ";
while(first!=NULL)
{
cout<<first->data<<"\t";
first=first->next;
}
cout<<endl;
}
int list::count(node *first)
{
int c=0;
while(first!=NULL)
{
c++;
first=first->next;
}
return c;
}
node* list::IAV(node *first, intele, intval)
{
node *temp=create(ele);
node *t=find(first,val);
if(t!=NULL)
{
temp->next=t->next;
t->next=temp;
}
else
cout<<"Element not found";
return first;
}
node* list::IAP(node *first, intele, intpos)
{
node *temp=create(ele);
node *t=first;
inti,c=count(first);
if(pos>c+1 ||c==0)
{
cout<<"IAP not possible";
return first;
}
else if(pos==1)
{
first=IAB(first,ele);
return first;
}
else if(pos==c+1)
{
first=IAE(first,ele);
return first;
}
else
{
for(i=1; i<pos-1;i++)
t=t->next;
temp->next=t->next;
t->next=temp;
return first;
}
}
node* list::DAE(node *first)
{
node *t=first;
node *pre=NULL;
if(t->next==NULL)
return NULL;
while(t->next!=NULL)
{
pre=t;
t=t->next;
}
pre->next=NULL;
return first;
}
node* list::DAP(node *first, intpos)
{
node *t=first;
intc,i;
c=count(first);
if(c==0||pos>c)
{
cout<<"deletion is not possible";
return first;
}
else if(pos==1)
{
first=DAB(first);
return first;
}
else if(c==pos)
{
first=DAE(first);
return first;
}
else
{
for(i=1;i<pos-1;i++)
{
t=t->next;
}
t->next=t->next->next;
return first;
}
}
node*list::concate(node*first,node*second)
{
node*t=first;
while(t->next!=NULL)
{
t=t->next;
}
t->next=second;
return first;
}
int main()
{
list l;
intn,ch,ele,c,val,pos;
node *first,*temp,*second,*third;
do
{
cout<<"\n\n1.create n nodes\n
2.Display\n3.Count\n4.Find\n";
cout<<"5.IAB\n6.IAE\n7.IAV\n8.IAP\n";
cout<<"9.DAB\n10.DAE\n11.DAV\n12.DAP\n
13.sort\n 14.reverse\n";
cout<<"15.concatenate\n16.Exit\n";
cout<<"Enter your choice:";
cin>>ch;
switch(ch)
{
case 1:
cout<<"Enter n value: ";
cin>>n;
first=l.creatennodes(n);
break;
case 2:
l.display(first);
break;
case 3:
c=l.count(first);
cout<<"total no.of nodes="<<c;
break;
case 4:
cout<<"Enter element to be find:";
cin>>ele;
temp=l.find(first,ele);
if(temp!=NULL)
cout<<"Element found";
else
cout<<"Element not found";
break;
case 5:
cout<<"Enter element to be IAB:";
cin>>ele;
first=l.IAB(first,ele);
cout<<"After IAB the elements are";
l.display(first);
break;
case 12:
cout<<"enter position to be delete:";
cin>>pos;
first=l.DAP(first,pos);
cout<<"after deleting elements are:";
l.display(first);
break;
case 13:
first=l.sort(first);
cout<<"after sorting the elements are";
l.display(first);
break;
case 14:
first=l.reverse(first);
cout<<"after sorting the elements are";
l.display(first);
break;
case 15:
cout<<"Enter second list n value:";
cin>>n;
second=l.creatennodes(n);
third=l.concate(first,second);
cout<<"After concatenate the list is:\n";
l.display(third);
break;
case 16: exit(0);
default:
cout<<"Invalid choice";
}
}while(ch<17);
}