首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

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

2012-05-05 
很简单的一个c单链表错误,求改错红色是错误的地方!#includeiostream.h#includestdlib.hclass Listcla

很简单的一个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){}

热点排行