Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- using namespace std;
- #include<string>
- #include<cassert>
- template <typename T>
- class Linked{
- private:
- struct node
- {
- int data;
- node*next;
- }*p;
- T element;
- int go;
- public:
- Linked(const Linked<T>& l);
- Linked(int go);
- void append(T num);
- void addFirst(T num);
- void addAfter(int c, T num);
- void del(T num);//Deletion
- void display();//Display
- int count();
- ~Linked();//Destructor
- };
- template<typename T>
- Linked<T>::Linked(int go){
- p=NULL;
- }
- template<typename T>
- Linked<T>::Linked(const Linked<T>&l){
- p=NULL;
- }
- template<typename T>
- void Linked<T>::append(T num)
- {
- node *q,*t;
- if( p == NULL ){
- p = new node;
- p->data = num;
- p->next = NULL;
- }
- else{
- q = p;
- while( q->next != NULL )
- q = q->next;
- t = new node;
- t->data = num;
- t->next = NULL;
- q->next = t;
- }
- }
- template<typename T>
- void Linked<T>::addFirst(T num){
- node *q;
- q = new node;
- q->data = num;
- q->next = p;
- p = q;
- }
- template<typename T>
- void Linked<T>::addAfter( int c, T num)
- {
- node *q,*t;
- int i;
- for(i=0,q=p;i<c;i++)
- {
- q = q->next;
- if( q == NULL )
- {
- cout<<"\nThere are less than "<<c<<" elements.";
- return;
- }
- }
- t = new node;
- t->data = num;
- t->next = q->next;
- q->next = t;
- }
- template<typename T>
- void Linked<T>::del( T num )
- {
- node *q,*r;
- q = p;
- if( q->data == num )
- {
- p = q->next;
- delete q;
- return;
- }
- r = q;
- while( q!=NULL )
- {
- if( q->data == num )
- {
- r->next = q->next;
- delete q;
- return;
- }
- r = q;
- q = q->next;
- }
- cout<<"\nElement "<<num<<" not Found.";
- }
- template<typename T>
- void Linked<T>::display()
- {
- node *q;
- cout<<endl;
- for( q = p ; q != NULL ; q = q->next )
- cout<<endl<<q->data;
- }
- template<typename T>
- int Linked<T>::count()
- {
- node *q;
- int c=0;
- for( q=p ; q != NULL ; q = q->next )
- c++;
- return c;
- }
- template<typename T>
- Linked<T>::~Linked()
- {
- node *q;
- if( p == NULL )
- return;
- while( p != NULL )
- {
- q = p->next;
- delete p;
- p = q;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement