急求!C语言链表问题求助
#include<stdio.h>
#include<malloc.h>
typedef struct list
{
int number;
struct list *link;
}linklist,Node;
linklist* creatlist(void);//创建链表
void showlist(linklist*);//显示链表中元素
int main()
{
linklist *head;
head=creatlist();
printf("链表中的元素为:\n");
showlist(head);
return 0;
}
linklist *creatlist1(void)
{
linklist *head;
Node *p;
int x;
head=(linklist*)malloc(sizeof(Node));//
head->link=NULL;
printf("请输入数字,当输入0时结束:\n");
int flag=1;
while(flag)
{
scanf("%d",&x);
if(x!=0)
{
p->number=x;
p->link=head->link;
head->link=p;
}
else flag=0;
}
return head;
}
void showlist(linklist *head)
{
Node *p;
p=head->link;
if(p->link=NULL)
printf("链表中没有任何元素了!");
while(p!=NULL)
{ printf("链表中的元素为:\n");
printf("%d\t",p->number);
p=p->link;
}
}
此程序有如下一个错误,请问是怎么回事,要怎么修改啊?
Linking...
q.obj : error LNK2001: unresolved external symbol "struct list * __cdecl creatlist(void)" (?creatlist@@YAPAUlist@@XZ)
Debug/q.exe : fatal error LNK1120: 1 unresolved externals
执行 link.exe 时出错.
q.exe - 1 error(s), 0 warning(s)
[解决办法]
还有些错误,代码改了下。
Node *p;没有分配空间等。
#include<stdio.h>#include<stdlib.h>typedef struct list { int number; struct list *link;}linklist,Node;linklist* creatlist(void);//创建链表void showlist(linklist*);//显示链表中元素int main(){ linklist *head; head=creatlist(); showlist(head); system("pause"); return 0; }linklist *creatlist(void){ linklist *head,*H; Node *p; int x; printf("请输入数字,当输入0时结束:\n"); int flag=1,First=1; while(flag) { p=(Node*)malloc(sizeof(Node)); fflush(stdin); scanf("%d",&x); p->number=x; p->link=NULL; if(x!=0) { if (First) { H=p; } else head->link=p; head=p; } else flag=0; First=0; } return H;}void showlist(linklist *head){ Node *p; p=head; if(p==NULL) printf("链表中没有任何元素了!"); while(p!=NULL) { printf("链表中的元素为:%d\n",p->number); p=p->link; }}