C++ 使用模板實現(xiàn)一個List的實例
更新時間:2017年05月25日 09:08:57 投稿:lqh
這篇文章主要介紹了 C++ 使用模板實現(xiàn)一個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 -- ;
//刪除頭節(jié)點
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;
}
};
調(diào)用方式如下
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++中opencv4.1.0環(huán)境配置的詳細過程
這篇文章主要介紹了C++中opencv4.1.0環(huán)境配置的詳細過程,本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-10-10
QT編寫窗口插件實現(xiàn)調(diào)用窗口的自適應
這篇文章主要為大家詳細介紹了QT編寫窗口插件實現(xiàn)調(diào)用窗口的自適應,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-06-06

