1 链表集合数据结构与操作定义 class ListSetNode { friend class ListSet<T>; T data; ListSetNode<T>*link; public: ListSetNode():link(NULL){} ListSetNode(T value):link(NULL),data(value){} }; template<class T> class ListSet { ListSetNode<T>* head; ListSetNode<T>* tail; public: ListSet(); void Add(T add); //向集合中添加元素 void Del(T del); //删除集合中的元素 bool IsEmpty(); //判断是否为空 void MakeEmpty(); //清空集合 ListSet<T>& operator +(ListSet<T>& another); //A并B ListSet<T>& operator -(ListSet<T>& another); //A-B ListSet<T>& operator *(ListSet<T>& another); //A并B ListSet<T>& operator =(ListSet<T>& another); //A=B bool operator ==(ListSet<T>& another); //A==B? ListSetNode<T>* GetHead(){return head;} };