Linked - List Using Template #include #include #include template class linklist { private: struct node { T data; node *link; }*p; public: linklist(); ~linklist(); void append(T); void addatbeg(T); void addafter(int,T); void del(int); void display(); int count(); }; template linklist::linklist() { p=NULL; } template linklist::~linklist() { node *t; while(p!=NULL) { t=p; p=p->link; delete t; } } template void linklist::append(T num) { node *q,*t; if(p==NULL) { p=new node; p->data=num; p->link=NULL; } else { q=p; while(q->link!=NULL) q=q->link; t=new node; t->data=num; t->link=NULL; q->link=t; } } template void linklist::addatbeg(T num) { node *q; q=new node; q->data=num; q->link=p; p=q; } template void linklist::addafter(int c,T num) { node *q,*t; int i; for(i=1,q=p;i<=c;i++) { q=q->link; if(q==NULL) { cout<data=num; t->link=q->link; q->link=t; } template void linklist::del(int n) { node *q,*r; int i=1; q=p; if(n==1) { p=q->link; delete q; return; } r=q; while(q!=NULL) { if(i==n) { r->link=q->link; delete q; return; } r=p; q=q->link; i++; } cout< void linklist::display() { node *q; cout<link) cout<data< int linklist::count() { node *q; int c=0; for(q=p;q!=NULL;q=q->link) c++; return(c); } void main() { clrscr(); linklist l1; cout<