⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 link.h

📁 vc当中比较容易遇到的过河问题
💻 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 + -