这篇文章主要介绍了C++如何使用模板实现一个List,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。
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;
}
感谢你能够认真阅读完这篇文章,希望小编分享的“C++如何使用模板实现一个List”这篇文章对大家有帮助,同时也希望大家多多支持亿速云,关注亿速云行业资讯频道,更多相关知识等着你来学习!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。