单链表中重载操作符“=”

来源:互联网 发布:mysql连接数据库 编辑:程序博客网 时间:2024/05/16 02:20
//重载=template<typename T>void chain<T>::operator=(const chain<T>&thelist){listSize = thelist.listSize;if (listSize == 0){//链表为空firstNode = NULL;return;}//链表theList为非空chainNode<T>* sourceNode = thelist.firstNode;   //复制目标链表的节点,相当于中间变量firstNode = new chainNode<T>(sourceNode->element);//复制链表theList的首元素sourceNode = sourceNode->next;//指向第二个元素chainNode<T>* targetNode = firstNode;       //当前链表的最后一个节点  ,相当于返回结果while (sourceNode != NULL){//复制剩余元素targetNode->next = new chainNode<T>(sourceNode->element);//复制第二个元素,后面依次复制targetNode = targetNode->next;sourceNode = sourceNode->next;}targetNode->next = NULL;//把最后一个指针复制,链表结束}