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

急求!C语言链表有关问题

2012-04-22 
急求!C语言链表问题求助#includestdio.h#includemalloc.htypedef struct list{int numberstruct list

急求!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;没有分配空间等。

C/C++ code
#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;    }} 

热点排行
Bad Request.