关于C++链表

来源:百度知道 编辑:UC知道 时间:2024/05/22 18:30:16
template<class T>
struct LinkNode
{
T data;/*数据域*/
LinkNode<T> *link;/*链指针域*/
LinkNode(LinkNode<T> *ptr=NULL)/*仅初始化指针成员的构造函数*/
{
link=ptr;
}
LinkNode(const T& item,LinkNode<T> *ptr=NULL)/*初始化数据与指针成员的构造函数*/
{
data=item;
link=ptr;
}
};
List<T>::List(const List<T>& L)
{
T value;
LinkNode<T> *srcptr=L.getHead();/*被复制表的附加头结点的地址*/
LinkNode<T> *destptr=first=new LinkNode<T>;
while(srcptr->link!=NULL)
{
value=srcptr->link->data;
destptr->link=new LinkNode<T>(value);//请问这句话是什么意思,(VALUE)不是很理解
destptr=destptr->link;
srcptr=srcptr->link;
}
destptr->link=NULL;
}
new LinkNode<T>(value);
是调用LinkNode(LinkNode<T> *ptr=NULL)/*仅初始化指针成员的构造函数*/
{
link=ptr;
}
还是LinkNode(const T& item,LinkNode<T> *ptr=NULL)/

new LinkNode<T>(value);
即调用带默认参数的构造函数
LinkNode(const T& item,LinkNode<T> *ptr=NULL)/*初始化数据与指针成员的构造函数*/
{
data=item;
link=ptr;
}
};
然后将这个结点链接到链尾

String str = new String("abc");
"abc"就是value啊
就是使用String的构造函数String(const char*)来初始化str的值
这个也是一样的
new LinkNode<T>(value);
之前还应该有一个构造函数吧

你这是复制构造函数吧
没太仔细看

把一个List<T>传递进来
然后遍历
把原来的List每个结点的值都存到局部变量value里面
并new 一个新的结点出来并初始化为(value)

拷贝LinkNode ,链表的拷贝构造,需要拷贝原list的listNode
比如说 const list<int> lstA , list<int> lstACopy;
调拷贝构造,lstACopy 需要将lstA的内容全部 拷贝到自己的队列中,
这个时候 value 就是 int