📄 link.h
字号:
#ifndef link
#define link
#include "clist.h"
#include "assert.h"
#include"listIterator.h"
template <class T> class listIterator;
template <class T> class list;
template<class T>class link
{
public:
// 插入一个新结点
link<T>*insert(T val);
private:
// 构造函数
link(T linkValue,link<T>*nextPtr);
link(const link<T>&source);
// 复制
link<T>*duplicate()const;
// 数据域
T value;
link<T>* ptrToNextLink;
// 友元
friend class list<T>;
//friend class listlterator<T>;
};
template<class T> link<T>::link(T val,link<T>*nxt)
: value(val),ptrToNextLink(nxt)
{
// 没有其他操作
}
template<class T> link<T>::link(const link<T> & source)
: value(source.value),ptrToNextLink(source.ptrToNextLink)
{
// 没有其他动作
}
template<class T> link<T>*link<T>::insert(T val)
{
ptrtonextlink=new link<T>(val,ptrToNextLink);
assert(ptrToNextLink !=0);
return ptrToNextLink;
}
template<class T> link<T>*link<T>::duplicate()const
{
link<T>*newlink;
if(ptrToNextLink!=0)
//当还有下一个结点时递归调用复制函数
newlink=
new link<T.(value,ptrToNextLink->duplicate());
else
newlink=new link<T>(value,0);
//检查动态分配是否成功
assert(newlink !=0);
return newlink;
}
#endif //link
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -