我试图实现链接列表,我不知道如何创建数据结构作为节点,在STL c ++中我们可以这样做:
list< list< pair< int,int>>> test;
这是我的代码:
template <typename Type>
class Node{
template <typename X, class Y> friend class List;
template <typename X> friend class ListIterator;
Type data;
Node<Type>* next;
public:
Node(Type x):data(x), next(NULL){}
Node(Type x, Node<Type>*& _next):data(x), next(_next){}
virtual ~Node(){};
};
template <typename Type, class Trait=Forward<Type> >
class List{
typedef typename Trait::C C;
typedef List<Type> itself;
typedef Node<Type> nodeHelp;
int size_list;
Node<Type>* head;
C compare;
public:
typedef ListIterator<Type> iterator;
List(){
head = NULL;
size_list = 0;
}
virtual ~List(){
Node<Type>* temp;
while(head){
temp = head->next;
delete head;
head = temp;
}
};
所以,我想也许我可以创建一个复制数据的构造函数,但我不知道该怎么做。