读书人

很简单的一个c单链表异常求改错

发布时间: 2012-05-05 17:21:10 作者: rapoo

很简单的一个c单链表错误,求改错
红色是错误的地方!

#include<iostream.h>
#include<stdlib.h>

class List;

class LinkNode
{
friend class List;
private:
int data;
LinkNode *link;
};

class List
{
public:
bool Insert(int i,int& x);
private:
LinkNode* first;
};

bool List::Insert(int i,int& x)
{
if(first==NULL||i==0)
{
LinkNode* newNode=new LinkNode(x);
if(newNode==NULL)
{cerr<<"存储分配错误!\n";exit(1);}
newNode->link=first;first=newNode;
}

else
{
LinkNode * current=first;
for(int k=1;k<i;k++)
if(current==NULL)break;
else current=current->link;
if(current==NULL)
{cerr<<"无效的插入位置!\n";return false;}
else{
LinkNode* newNode=new LinkNode(x);
if(newNode==NULL){cerr<<"存储分配错误!\n";exit(1);}
newNode->link=current->link;
current->link=newNode;
}
}
return true;
}


[解决办法]
LinkNode的默认构造函数是没有参数的,像上面说的,你自己写一个带参数的构造函数就行了~
如:LinkNode(int i):data(i){}

读书人网 >C++

热点推荐