C++使用模板实现单链表
2019-04-30 18:02
901 查看
本文实例为大家分享了用模板实现单链表,供大家参考,具体内容如下
话不多说 直接上代码
#include <iostream> using namespace std; template<typename E> class CLink; template<typename T> class Node { friend class CLink<T>; public: /* 构造函数和析构函数一般不加类型参数 本类类中除了构造函数和析构函数以外 其它的地方都要加上类型参数 */ 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; }
运行结果:
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
您可能感兴趣的文章:
相关文章推荐
- 数据结构C++模板实现之----------------单向链表
- C++_模板举例_使用模板实现集合类(堆栈)
- C++模板链表实现优先级队列
- C++类模板 实现双向循环链表的基本算法 《数据结构》(C++版 北京科海)中摘抄
- 【C++ STL应用与实现】7: 如何使用std::forward_list 单链表 (since C++11)
- C++模板实现链表
- C++使用模板实现顺序表
- 使用C++模板实现栈的求最小值功能
- 使用C++实现的单向循环链表
- C++用模板实现双链表和队列
- C++链表类的三种使用方法(学生信息管理系统的实现)
- C++模板链表实现优先级队列
- C++模板实现单链表
- 列表的c++实现(类模板,包含顺序实现和单链表、双链表)
- 【C++】模板实现带头节点的双向循环链表
- C++模板实现的单向链表
- 链表C++模板实现
- 使用C++实现单向链表
- 使用C++的类模板实现Stack类
- c++模板实现双向链表