把代码放到一个cpp文件运行无误后,拆分到三个文件(头文件,cpp,主函数main)里后出现该错误。重启几遍后无果,上网搜索后说是“只在头文件中写了函数声明,没在源文件中写实现造成的”,或者其他,没有给出解决办法。
代码如下:
//main函数文件usingnamespacestd;intmain(){ LinkNode *L =NULL; Create(L);return0; }
//头文件#include"stdio.h"#include<iostream>#include<stdlib.h>structLinkNode{LinkNode *next;intdata; };voidInsert(LinkNode *L,intnum);voidDisplay(LinkNode *L);voidCreate(LinkNode *L);
```
//.cpp文件,函数体
include"LinkList.h"
using namespace std;
void Insert(LinkNode L,int num)
{
LinkNode
p = L->next,pre=L,Tem; //p指向第一个结点用来比较,pre指向p前面的点。Tem是新结点
Tem = new LinkNode;
Tem->data = num;
if(L->next == NULL) //当L没有结点时,插入
{
Tem->next = NULL;
L->next = Tem;
return;
}
while (p && (p->data < num)) //寻找合适的位置插入
{
pre = p;
p = p->next;
}
if(p == NULL) //没有找到合适位置,一直来到了链表最后
{
pre->next = Tem;
Tem->next = NULL;
}
else //找到了合适位置
{
Tem->next = p;
pre->next = Tem;
}
}
void Display(LinkNode L)
{
LinkNode
o;
o = L->next;
while(o != NULL)
{
cout<
o = o->next;
}
}
void Create(LinkNode *L)
{
L = new LinkNode;
L->data = 0;
L->next = NULL; //初始化L
int num=0;
cout<<"请输入要插入的元素,输入-1结束"<
cin>>num;
while(num != -1)
{
Insert(L,num);
L->data = L->data +1;
cin>>num;
}
cout<<"输入完成,列表元素如下:"<
Display(L);
}```
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/3932/viewspace-3139240/ ,如需转载,请注明出处,否则将追究法律责任。