C++使用模板實現(xiàn)單鏈表
更新時間:2020年04月26日 10:45:15 作者:牧童遙指杏花村丫
這篇文章主要為大家詳細介紹了C++使用模板實現(xiàn)單鏈表,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
本文實例為大家分享了用模板實現(xiàn)單鏈表,供大家參考,具體內(nèi)容如下
話不多說 直接上代碼
#include <iostream>
using namespace std;
template<typename E>
class CLink;
template<typename T>
class Node
{
friend class CLink<T>;
public:
/*
構(gòu)造函數(shù)和析構(gòu)函數(shù)一般不加類型參數(shù)
本類類中除了構(gòu)造函數(shù)和析構(gòu)函數(shù)以外
其它的地方都要加上類型參數(shù)
*/
Node(T data = 0)
{
mdata = data;
pnext = NULL;
}
~Node(){}
private:
T mdata;
Node<T>* pnext;
};
template<typename T>
class CLink
{
public:
CLink()
{
phead = new Node<T>();
}
void InsertHead(T data)
{
Node<T>* pNewNode = new Node<T>(data);
pNewNode->pnext = phead->pnext;
phead->pnext = pNewNode;
}
void InsertTail(T data)
{
Node<T>* pNewNode = new Node<T>(data);
Node<T>* pCur = phead;
while(pCur->pnext != NULL)
{
pCur = pCur->pnext;
}
pCur->pnext = pNewNode;
}
void Show()
{
Node<T>* pCur = phead->pnext;
while (pCur != NULL)
{
cout << pCur->mdata << " ";
pCur = pCur->pnext;
}
cout << endl;
}
~CLink()
{
Node<T>* pCur = phead;
Node<T>* pNext = phead;
while (pCur != NULL)
{
pNext = pCur->pnext;
delete pCur;
pCur = pNext;
}
phead = NULL;
}
private:
Node<T>* phead;
};
int main()
{
CLink<int> list1;
CLink<int> list2;
for(int i = 0;i < 10;i++)
{
list1.InsertHead(i + 1);
list2.InsertTail(i * 2);
}
cout << "list1:";
list1.Show();
cout << "list2:";
list2.Show();
return 0;
}
運行結(jié)果:

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
Cocos2d-x學習筆記之開發(fā)環(huán)境搭建
這篇文章主要介紹了Cocos2d-x學習筆記之開發(fā)環(huán)境搭建,本文使用Visual Studio作為開發(fā)IDE,是不同于其它教程的,需要的朋友可以參考下2014-09-09
C++ Log日志類輕量級支持格式化輸出變量實現(xiàn)代碼
這篇文章主要介紹了C++ Log日志類輕量級支持格式化輸出變量實現(xiàn)代碼,需要的朋友可以參考下2019-04-04
解析設計模式中的Prototype原型模式及在C++中的使用
這篇文章主要介紹了設計模式中的Prototype原型模式及在C++中的使用,需要的朋友可以參考下2016-03-03
C語言實現(xiàn)學生信息管理系統(tǒng)(文件操作)
這篇文章主要介紹了C語言實現(xiàn)學生信息管理系統(tǒng),增加了文件操作,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-06-06
C語言數(shù)據(jù)結(jié)構(gòu)之算法的時間復雜度
這篇文章主要介紹了C語言數(shù)據(jù)結(jié)構(gòu)之算法的時間復雜度,文章基于c語言的相關資料展開詳細介紹,具有一定的參價值,需要的小伙伴可以參考一下2022-05-05

