#include<iostream>
using namespace std;
template<class T> //采用模板类型
struct CircLinkNode{ //单链表节点类的定义
T data; //节点的数据域
CircLinkNode<T> *next; //节点的指针域
CircLinkNode(CircLinkNode<T> *link=NULL):next(link){} //节点的构造函数
CircLinkNode(T d,CircLinkNode<T> *link=NULL):next(link),data(d){}
};
using namespace std;
template<class T> //采用模板类型
struct CircLinkNode{ //单链表节点类的定义
T data; //节点的数据域
CircLinkNode<T> *next; //节点的指针域
CircLinkNode(CircLinkNode<T> *link=NULL):next(link){} //节点的构造函数
CircLinkNode(T d,CircLinkNode<T> *link=NULL):next(link),data(d){}
};
template<class T> //循环单链表的类定义,含有附加头节点
class CircLink{
public:
CircLink(const T& x); //默认构造函数
CircLink(const CircLink<T>& L); //复制构造函数
~CircLink(); //析构函数
int Length() const; //计算循环链表的长度
bool IsEmpty(); //判断表是否为空
CircLinkNode<T> *getHead() const;&nbs
class CircLink{
public:
CircLink(const T& x); //默认构造函数
CircLink(const CircLink<T>& L); //复制构造函数
~CircLink(); //析构函数
int Length() const; //计算循环链表的长度
bool IsEmpty(); //判断表是否为空
CircLinkNode<T> *getHead() const;&nbs