首页 > 编程 > C++ > 正文

C++ 使用模板实现一个List的实例

2020-01-26 14:07:33
字体:
来源:转载
供稿:网友

C ++使用模板写的一个List

template<class T> class List { private:   struct Node   {     T data;     Node *next;   };   //head   Node *head;   //size   int length;    //process   Node *p;    //temp   Node *q; public:   List()   {     head = NULL;     length = 0;     p = NULL;   }   void add(T t)   {     if(head == NULL)     {       q = new Node();       q->data = t;       q->next = NULL;       length ++ ;       head = q ;       p = head;     }     else     {       q = new Node();       q->data = t;       q->next = NULL;       length ++;       p -> next = q;       p = q;     }   }    void remove(int n)   {     if(n >= length )     {       return;     }     length -- ;      //删除头节点     if(n == 0)     {       q = head ;       head = head -> next;       delete(q);     }     else     {       q = head;       for(int i = 0 ; i < n-1 ; i++)       {         q = q -> next;       }       Node *t = q ->next;       q->next = q->next ->next;       delete(t);      }      //     p = head;     if (p != NULL)     {       while(p->next != NULL)       {         p = p->next;       }     }    }    int getSize()   {     return length;   }    int getLength()   {     return getSize();   }    T get(int n)   {     q = head;     for (int i = 0 ;i < n ; i++)     {       q = q->next;     }     return q->data;   }   }; 

调用方式如下

List<Stu>list;   Stu stu1;   Stu stu2;   Stu stu3;   stu1.username = "1";   stu2.username = "2";   stu3.username = "3";    list.add(stu1);   list.remove(0);   list.add(stu2);   list.add(stu3);    for (int i = 0 ;i < list.getSize() ; i ++)   {     cout << list.get(i).username;   } 

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表