带头结点的单链表拷贝构造函数

newthis 2010-10-23 08:22:53
本人写的链表如下# include <iostream>
using namespace std ;
class Node
{
public :
int data ;
Node * link ;
Node ()
{
link = NULL;
}
Node (int element)
{
data = element ;
link = NULL ;
}
};
# include "Node.h"
class LinkedList
{
public:
Node * head ;
int count ;
public:
LinkedList () ; //置空表
LinkedList(LinkedList & use);//拷贝构造函数
void ConstructList (int use[],int size);//建立链表
int GetLength () ; //求长度
void GetData(const int index ,Node & out); //取出序一定号的元素
Node * GetPointer (int i) ;//返回一定序号对应的元素的指针
void Delete (int j) ;//删除某一指定位置的节点
void Insert (Node & use,int position);//将给定结点插入到给定位置
void Deletepointed (int x); //删除表中值等于指定值的结点
void DefaultInsert(Node &use);//默认于表尾插入元素
void Display ();//显示所有元素
void Sort ( );//排序
void Seperate (LinkedList & p,LinkedList & q,LinkedList & source);//分离奇数项和偶数项至不同的链表中
void Cross (LinkedList & p,LinkedList & q,LinkedList & output);//求两个递增链表的交
void Insertat(const int x,int position);//在指定position之前插入值为x的结点
void InsertSorted (Node & use);//在有序链表中插入一结点到应有的位置
void Insertathead (int w);//在链表的头端插入一值为w的结点
~ LinkedList () ;//析构函数

};


拷贝构造函数如下,但运行崩溃,请问哪位高手能指点迷津,帮忙写一个正确的?(其它函数均已测试正确)
LinkedList ::LinkedList ()//构造函数
{
count = 0;
head = new Node() ;
}
LinkedList::LinkedList(LinkedList & use)
{
count = use.count ;
Node* l=use.head->link;
if(l==NULL)
{
count=0;
head->link = NULL;
}
else
{
head->link = new Node(l->data);
Node *r=head->link;
l=l->link;
while(l!=NULL)
{
r->link=new Node(l->data);
r=r->link;
l=l->link;
}
count=use.count;
}



}
...全文
499 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
某某9 2010-10-23
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 ouyh12345 的回复:]
LinkedList::LinkedList(LinkedList & use)
{
count = use.count ;
Node *r = NULL;
head->link = r;
Node* l=use.head->link;
while (1 != NULL)
{
r = new Node(l->data);
r = r->link;
l = l->link……
[/Quote]
+1
VCACC 2010-10-23
  • 打赏
  • 举报
回复

LinkedList::LinkedList(LinkedList & use)
{
count = use.count ;
Node* l=use.head->link;
Node* r=NULL;
head->link=r;
while(l!=NULL)
{

r=new Node(l->data);
r=r->link;
l=l->link;
}
}
ouyh12345 2010-10-23
  • 打赏
  • 举报
回复

LinkedList::LinkedList(LinkedList & use)
{
count = use.count ;
Node *r = NULL;
head->link = r;
Node* l=use.head->link;
while (1 != NULL)
{
r = new Node(l->data);
r = r->link;
l = l->link;
}
}

3,881

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 其它技术问题
社区管理员
  • 其它技术问题社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧