【数据结构】用模板类链表实现队列
2020-06-03 06:14
435 查看
注意
- 析构函数写的时候先调用清空函数 然后调用LIST的析构函数 我开始想要怎么才能从外部调用list的析构函数 原来用delete就可以 神奇
- 在cpp文件也要加上program once了,因为头文件中包含的link.cpp和seq.cpp中也有link.cpp
析构函数
template <typename T> Seq<T>::~Seq() { clear(); delete link; link = NULL; }
构造函数包含的是指针节点
template <typename T> Seq<T>::Seq() { link = new Link<T>; }
头文件 私有变量是指针
template <typename T> class Seq { public: Seq(); ~Seq(); int getlen(); int insert(const T& t); T del(); T get(); void clear(); private: Link<T> *link; };
CPP文件
template <typename T> Seq<T>::Seq() { link = new Link<T>; } template <typename T> Seq<T>::~Seq() { clear(); delete link; link = NULL; } template <typename T> int Seq<T>::getlen() { return link->getlen(); } template <typename T> int Seq<T>::insert(const T& t) { return link->insert(t, 0); } template <typename T> T Seq<T>::del() { return link->del(0); } template <typename T> T Seq<T>::get() { return link->get(0); } template <typename T> void Seq<T>::clear() { return link->clear(); }
测试文件
void testSeq() { Teacher t1, t2, t3; t1.age = 31; strcpy(t1.name, "t1t1t1"); strcpy(t1.worknum, "num1"); t2.age = 32; strcpy(t2.name, "t2t2t2"); strcpy(t2.worknum, "num2"); t3.age = 33; strcpy(t3.name, "t3t3t3"); strcpy(t3.worknum, "num3"); Seq<Teacher> seq;//类模板的参数 记得<> seq.insert(t1); seq.insert(t2); seq.insert(t3); cout << seq.getlen() << endl; Teacher tmp; for (int i = 0;i < seq.getlen();i++) { tmp = seq.get(); cout << tmp.name << endl; } tmp = seq.del(); cout << tmp.name << endl; seq.clear(); }
写代码好累呀 害!
相关文章推荐
- 典型数据结构--基于链表的队列实现
- java实现 数据结构:链表、 栈、 队列、优先级队列、哈希表
- 一步一步学数据结构之1--1(队列--单链表表实现--不含队头尾指针)
- 【数据结构】队列-链表的实现
- 数据结构:C_链表队列的实现
- 几种基本数据结构--栈、队列、双向链表、有根树的分析和简单实现
- 数据结构-链表逆置(c++模板类实现)
- 自编模板类+链表实现栈、队列
- 数据结构(23)队列--单链表实现
- 数据结构---队列的链表实现
- C++利用链表模板类实现一个简易队列
- 算法导论第十章 基本数据结构实现(栈,队列,链表),课后题答案
- 数据结构---队列链表c实现
- 数据结构-用链表实现队列
- Python实现数据结构,栈,队列(单向队列,双向队列,环形队列),链表
- js实现栈、队列、链表数据结构
- 数据结构学习:环形队列的模板类实现
- 数据结构:用单链表实现的队列
- 数据结构队列的链表实现初始化,出队,出队以及显示
- 【数据结构练习】基于链表结构实现的队列